2014-04-19 3 views
1
NSFileManager *fileMgr = [[NSFileManager alloc] init]; 
NSError *error = nil; 

NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSArray *files = [fileMgr contentsOfDirectoryAtPath:cachePath error:nil]; 

for (NSString *path in files) 
{ 
    NSString *fullPath = [cachePath stringByAppendingPathComponent:path]; 
    BOOL removeSuccess = [fileMgr removeItemAtPath:fullPath error:&error]; 
    if (!removeSuccess) 
    { 
     return error; 
    } 
} 

위 코드는 간혹 사용 권한에 대한 코코아 오류 513을 제공합니다. 캐시 디렉토리에 인터넷에있는 파일을 다운로드합니다. 명시 적으로 일부 사용 권한을 설정해야합니까? 왜 때로는 오류가 발생합니까? 6.0/7.0에서는 절대로 발생하지 않지만 가끔은 7.1에서 발생합니다.파일을 삭제할 때 가끔 오류가 발생했습니다.

+0

캐시에있는 데이터의 전용 디렉토리이며 캐시의 모든 내용을 삭제하지 마십시오 – sage444

+0

그 이론에 대한 증명이 있습니까, 루트 캐시 폴더에있는 파일을 삭제할 수 없다고 말하는가? – Pablo

+0

아니요, 제 추측이지만 캐시 폴더의 콘텐츠를 보면 앱이 직접 만들지 않은 많은 파일을 볼 수 있습니다. – sage444

답변

1

내가 코멘트로 쓰는 것처럼 당신의 앱이 직접 소유하지 않은 일부 시스템 파일을 삭제하는 것과 관련된 문제는 삭제되지 않아야한다고 생각합니다. 예를 들어

어떻게 이상한 오류를 방지하기 위해 하나 UIWebView enter image description here

Library/Caches 내부 전용 폴더를 만들고 여러분의 필요에 존경 안에 내용을 삭제하는 것이 좋습니다와 기본 응용 프로그램에 Cache 폴더를 찾습니다 난 당신이 작성해야한다고 생각

+0

나에 의해 생성되지 않은 무언가를 삭제하려고했던 것 같습니다. 어떻게 든 나는 캐시 폴더가 나에게 헌신하고 아무도 거기에 쓸 수 없다고 생각했다. – Pablo

+0

@Pablo yea 및이 순간 문서에 설명되어 있지 않음 – sage444

관련 문제