Search code examples
iosnsfilemanager

Delete .mov files from app


This is how I write video data to file:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMddHHmmssSSS"
let date = dateFormatter.stringFromDate(NSDate())
let name = "\(date).mov"
let documentsDirectory = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
let url = documentsDirectory.URLByAppendingPathComponent(name)
videoData.writeToFile(url.path!, atomically: true)

When the app terminates, I want to delete the files I created before. This is what I am doing now:

func applicationWillTerminate(application: UIApplication) {
    let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
    for url in urls {
        if url.absoluteString.containsString(".mov") {
            try! NSFileManager.defaultManager().removeItemAtURL(url)
        }
    }
}  

But it doesn't work. What should I do? Thank you.


Solution

  • Try this:

     func applicationWillTerminate(application: UIApplication) {
        let documentPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
        let url:NSURL = documentPath[0]
        let fileManager = NSFileManager.defaultManager()
    
        let files = fileManager.enumeratorAtPath(url.path!)
        while let file = files?.nextObject() {
             if file.containsString(".mp4") {
                let filepath = url.path! + "/\(file)"
                do {
                    try fileManager.removeItemAtPath(filepath)
                    print("removeurlsuccess")
                } catch let error{
                    print("removeurlfail")
    
                }
            }
    
        }        // Override point for customizati
    }