此代码复制引用的文件并将其放在Docs目录中.我正在尝试构建一个简单的备份解决方案.问题是如果重复该操作,此操作不会覆盖现有文件.
两个问题:
在代码中覆盖的最佳方法是什么?
将当前日期附加到每个复制的文件有多难?在这种情况下,不会有覆盖操作.这对于保持增量备份更有用.如果我决定这样做,我理解我需要创建一个新的路径,以保持组织.
谢谢.
保罗
NSString * name = @"testFile";
NSArray * files = [NSArray arrayWithObject: name];
NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws performFileOperation: NSWorkspaceCopyOperation
source: @"~/Library/Application Support/testApp"
destination: @"~/Documents/"
files: files
tag: 0];
最佳答案 您可以尝试使用NSFileManager,例如下面(未经测试):
// Better way to get the Application Support Directory, similar method for Documents Directory
- (NSString *)applicationSupportDirectory {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : NSTemporaryDirectory();
return [basePath stringByAppendingPathComponent:@"testApp"];
}
- (void) removeFile {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *applicationSupportDirectory = [self applicationSupportDirectory];
NSError *error = nil;
NSString* filePath = [applicationSupportDirectory stringByAppendingPathComponent: @"testFile"];
if ([fileManager fileExistsAtPath:filePath isDirectory:NULL]) {
[fileManager removeItemAtPath:filePath error:&error];
}
}
编辑:
查看NSFileManager Class Reference以了解可能有用的其他功能(针对您的第二个问题).