2016-08-22 4 views
0

キャッシュディレクトリのファイルを削除しようとしています。しかし、個々のフォルダを削除しようとすると、ファイルが存在しないというエラーが表示されます。だから、私はキャッシュディレクトリ内のすべてのファイルを削除するためのforループを使用してみました。NSFileManager:ファイルを削除しようとしていますが、存在しないと言われました

do { 
     for file in try NSFileManager.defaultManager().contentsOfDirectoryAtPath(cacheFolderPath) where !file.hasPrefix("."){ 
      try NSFileManager.defaultManager().removeItemAtPath(file) 
     } 
     print("Cache cleared successfully.") 
    } 
    catch let error as NSError { 
     print(error.localizedDescription) 
     if let reason = error.localizedFailureReason { 
      print(reason) 
     } 
    } 
} 

しかし、この本のコードを印刷:

"CategoryThumbnailsは、" 削除することができませんでした。
ファイルが存在しません。

これは明らかに、contentsOfDirectoryAtPathの方法で発見されたとおりです。どのように存在しないのでしょうか?誰がここで何が起こっているのか、キャッシュをクリアする方法は何かを知っていますか?

答えて

3

contentsOfDirectoryAtPathの結果は、指定されたフォルダ内のファイルの一覧です。しかし、それぞれの結果は完全な経路そのものではありません。

fileをそれぞれ削除するには、filecacheFolderPathを追加する必要があります。その完全なパスをremoveItemAtPathに渡します。

もう1つの解決策は、フルURLを返すNSFileManagerの他のフォルダ列挙方法の1つを使用し、隠しファイルをスキップするオプションを提供することです。

関連する問題