2017-03-08 39 views
0

我想每1分鐘清除默認緩存目錄中的所有圖像,但緩存文件沒有擴展名以指定它們的類型,我不知道如何刪除像PNG(而不是其他數據)的圖像。 這是示例代碼我在這個網站看到:如何清除緩存目錄中的圖像?

 let fileManager = FileManager.default 
    let documentsUrl = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first! as NSURL 
    let documentsPath = documentsUrl.path 

    do { 
     if let documentPath = documentsPath 
     { 
      let fileNames = try fileManager.contentsOfDirectory(atPath: "\(documentPath)") 
      print("all files in cache: \(fileNames)") 
      for fileName in fileNames { 

       if (fileName.hasSuffix(".png")) 
       { 
        let filePathName = "\(documentPath)/\(fileName)" 
        try fileManager.removeItem(atPath: filePathName) 
       } 
      } 

      let files = try fileManager.contentsOfDirectory(atPath: "\(documentPath)") 
      print("all files in cache after deleting images: \(files)") 
     } 

    } catch { 
     print("Could not clear temp folder: \(error)") 
    } 

回答

1

可能性:

你可以使用的ImageIO刪除它之前測試每個文件,但是這將意味着取出前閱讀。它會替換後綴測試BUT

因爲它會真的不必要昂貴恕我直言,我甚至不會提供代碼。

好方法:

=>重命名你的形象有一個前綴或後綴,因此您可以通過名稱(N電話)

好辦法識別它們

=>放在一個圖像單獨的文件夾,只需刪除文件夾來清除它們。 (1 call)

+0

如何重命名默認緩存系統將要緩存的映像? – Omnia

+0

如果我把它們放在一個單獨的文件夾中,如果發生內存警告,iOS可以刪除它們嗎?或者我應該手動處理它們? – Omnia

+0

ios中默認緩存文件夾中的圖像除外,什麼是緩存?還有別的事嗎? – Omnia