#pragma mark -
#pragma mark DO NOT BACKUP 관련 소스.
//도큐먼트 폴더의 모든 개체를 백업금지로 등록합니다.
- (void)AddAttributeToAllFolder{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsPath error:nil];
for (int i =0; i < [dirContents count]; i++) {
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@",documentsPath,[dirContents objectAtIndex:i]]];
if ([self addSkipBackupAttributeToItemAtURL:url]) {
NSLog(@"success! could add do not backup attribute to folder");
}
}
}
//도큐먼트 폴더의 특정 개체를 백업금지로 등록합니다.
- (void)AddAttributeToFolder:(NSString*)folderName{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@",documentsPath,folderName]];
if ([self addSkipBackupAttributeToItemAtURL:url]) {
NSLog(@"success! could add do not backup attribute to folder");
}
}
//애플에서 공개한 Do Not Backup 관련 소스.
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL{
if (URL == nil) {
return NO;
} else if (![URL isFileURL]){
return NO;
}
u_int8_t b = 1;
int result = setxattr([[URL path] fileSystemRepresentation], "com.apple.MobileBackup", &b, 1, 0, 0);
if (result == 0) {
NSLog(@"success result:%d path:%@", result, [URL path]);
} else {
NSLog(@"failur result:%d path:%@", result, [URL path]);
}
return result == 0;
}
공유하기 버튼
|
|










최근 덧글