Как удалить локальные файлы?

ios

#1

Как удалить локальные файлы в папке

/Library/Caches/Parse/PFFileCache

В Parse SDK нету очистить кэш (может он есть но у меня не срабатывает), поэтому приходиться чистить вручную.

Swift 2.x


#2
func cleanUpParseDirectory(){
    
    var error: Error?
    let fileManager: FileManager = FileManager.default
    var cacheDirectoryURL: [URL] = fileManager.urls(for: FileManager.SearchPathDirectory.cachesDirectory, in: FileManager.SearchPathDomainMask.userDomainMask)
    let PFFileCacheDirectoryURL = cacheDirectoryURL[0].appendingPathComponent("Parse/PFFileCache", isDirectory: true)
    let PFFileCacheDirectory = try? fileManager.contentsOfDirectory(at: PFFileCacheDirectoryURL, includingPropertiesForKeys: nil, options: [])
    if !((PFFileCacheDirectory != nil) || (error != nil)) {
        if (error != nil) && (error as NSError?)?.code != NSFileReadNoSuchFileError {
            print("Error : Retrieving content of directory at URL \(PFFileCacheDirectoryURL) failed with error : \(error)")
        }
        return
    }
    
    print("Count cache: \(PFFileCacheDirectory!.count)")
    for fileURL: URL in PFFileCacheDirectory! {
        
        do {
            try fileManager.removeItem(at: fileURL)
        }
        catch let error as Error {
            print("Error : delete URL - \(fileURL) -   with error : \(error)")
        }
    }
}

#3

У меня на Swift 2 получилось вот так. Спасибо @LavTeam

func cleanUpParseDirectory() {
    let fileManager = NSFileManager.defaultManager()
    var cacheDirectory = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true)
    let libraryDirectory: AnyObject = cacheDirectory[0]
    let dataPath = libraryDirectory.stringByAppendingPathComponent("/Caches/Parse/PFFileCache")
    let parseCacheDirectory = try! fileManager.contentsOfDirectoryAtURL(NSURL(fileURLWithPath: dataPath), includingPropertiesForKeys: nil, options: [])
    
    for fileURL: NSURL in parseCacheDirectory {
        try! fileManager.removeItemAtURL(fileURL)
    }
}