2016-08-22 3 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으로 전달합니다.

또 다른 해결 방법은 NSFileManager의 다른 폴더 열거 방법 중 하나를 사용하여 전체 URL을 반환하고 숨김 파일을 건너 뛰는 옵션을 제공하는 것입니다.

관련 문제