파일을 작성한 다음 NSURLIsExcludedFromBackupKey 특성을 파일에 추가합니다. 이렇게하려면 내 HPSFileHelper 클래스에서 다음 두 가지 방법이 있습니다새 파일에 대해 ios fileExistsAtPath가 실패합니다.
+(void)writeDataToFileWithData:(NSData*)data andFilename:(NSString*)fileName
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:fileName];
[data writeToFile:filePath atomically:YES];
NSURL* fileURL = [NSURL fileURLWithPath:filePath];
[HPSFileHelper addSkipBackupAttributeToItemAtURL:fileURL]; // Prevent this file from being backed up.
}
+(BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
NSError *error = nil;
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
return success;
}
문제는 어설 ... fileExistsAtPath 가끔 실패한다는 것입니다. 아마도 이것은 어설 션이 실행될 때 파일이 완전히 작성 및 잠금 해제되지 않았기 때문일 수 있습니다. (대용량 파일 용)
이 문제를 해결하려면 어떻게해야합니까?
음 써트 fileExists 그래서 아마도 파일이 존재하지 않음을 확인하기 위해 설정되고 난 있지만, 때문에 완전히 작성되지 않은 될 수 있습니다 (실패 확실하지 않다). assert는 디버깅을 목적으로하기 때문에, 정말로주의해야 할 것은'addSkipBackupAttributeToItemAtURL :'이 생성되기 전에 그 경로에서 호출되는 이유입니다. 또한 설정중인 경로가 유효한지 확인하십시오. – mkral