Delete files from directory inside Document directory? Delete files from directory inside Document directory? ios ios

Delete files from directory inside Document directory?


In case anyone needs this for the latest Swift / Xcode versions: here is an example to remove all files from the temp folder:

Swift 2.x:

func clearTempFolder() {    let fileManager = NSFileManager.defaultManager()    let tempFolderPath = NSTemporaryDirectory()    do {        let filePaths = try fileManager.contentsOfDirectoryAtPath(tempFolderPath)        for filePath in filePaths {            try fileManager.removeItemAtPath(tempFolderPath + filePath)        }    } catch {        print("Could not clear temp folder: \(error)")    }}

Swift 3.x and Swift 4:

func clearTempFolder() {    let fileManager = FileManager.default    let tempFolderPath = NSTemporaryDirectory()    do {        let filePaths = try fileManager.contentsOfDirectory(atPath: tempFolderPath)        for filePath in filePaths {            try fileManager.removeItem(atPath: tempFolderPath + filePath)        }    } catch {        print("Could not clear temp folder: \(error)")    }}


Two things, use the temp directory and second pass an error to the fileManager.removeItemAtPath and place it in a if to see what failed. Also you should not be checking if the error is set but rather whether a methods has return data.

func clearAllFilesFromTempDirectory(){    var error: NSErrorPointer = nil    let dirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String    var tempDirPath = dirPath.stringByAppendingPathComponent("Temp")    var directoryContents: NSArray = fileManager.contentsOfDirectoryAtPath(tempDirPath, error: error)?    if directoryContents != nil {        for path in directoryContents {            let fullPath = dirPath.stringByAppendingPathComponent(path as! String)            if fileManager.removeItemAtPath(fullPath, error: error) == false {                println("Could not delete file: \(error)")            }        }    } else {        println("Could not retrieve directory: \(error)")    }}

To get the correct temporary directory use NSTemporaryDirectory()


Swift 3:

 func clearTempFolder() {    let fileManager = FileManager.default    let tempFolderPath = NSTemporaryDirectory()    do {        let filePaths = try fileManager.contentsOfDirectory(atPath: tempFolderPath)        for filePath in filePaths {            try fileManager.removeItem(atPath: NSTemporaryDirectory() + filePath)        }    } catch let error as NSError {        print("Could not clear temp folder: \(error.debugDescription)")    }}