gpt4 book ai didi

cocoa - 在 Cocoa 中以编程方式覆盖文件

转载 作者:行者123 更新时间:2023-12-03 16:15:08 25 4
gpt4 key购买 nike

此代码复制引用的文件并将其放置在文档目录中。我正在尝试构建一个简单的备份解决方案。问题是如果重复该操作,该操作不会覆盖现有文件。

两个问题:

在代码中覆盖的最佳方法是什么?

将当前日期附加到每个复制的文件有多困难?在这种情况下,不会有覆盖操作。这对于保留增量备份会更有用。如果我决定这样做,我知道我需要创建一条新路径以使事情保持井井有条。

谢谢。

保罗

    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对于其他可能有用的功能(对于您的第二个问题)。

关于cocoa - 在 Cocoa 中以编程方式覆盖文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4939221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com