2017-03-08 6 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を使用することができますが、それはそれを削除する前にそれを読んで意味します。それは接尾辞のテストを置き換えるだろうが、私はコードを提供することさえない本当に不必要に高価なIMHOだから、

としてテストを置き換えます。

大丈夫方法:

=>あなたは名(nは通話)

良い方法でそれらを識別できるように、接尾辞または接頭辞を持つようにあなたのイメージの名前を変更し

=>で画像を置きます別のフォルダに移動し、フォルダを削除して削除します。 (1コール)

+0

どのようにデフォルトのキャッシュシステムによってキャッシュされるイメージの名前を変更できますか? – Omnia

+0

メモリ警告が発生した場合、別のフォルダに置いてもiOSで削除できますか?または私はそれらを手動で処理する必要がありますか? – Omnia

+0

iosのデフォルトのキャッシュフォルダにある画像を除いて、キャッシュとは何ですか?他に何かありますか? – Omnia

関連する問題