我正在尝试使用 NSFileManager
copyItemAtURL:toURL:error:
将 UNIX 可执行文件(命令行程序)从一个目录移动到另一个目录,但我总是得到表示不支持 URL 类型的错误。我认为这是因为文件没有扩展名,它被视为目录,但我不确定。是否可以使用 NSFileManager
移动这种类型的文件?
编辑: 这是我的代码
#define SAVE_DIR [@"~/Library/Prog" stringByExpandingTildeInPath]
#define PROG_PATH [SAVE_DIR stringByAppendingString:@"/ProgCom"]
#define RESOURCES [[NSBundle mainBundle] resourcePath]
#define LOCAL_PROG [RESOURCES stringByAppendingString:@"/ProgCom"]
-(void)moveProg
{
NSError *error = nil;
NSURL *fromURL = [NSURL URLWithString:LOCAL_PROG];
NSURL *toURL = [NSURL URLWithString:PROG_PATH];
NSLog(@"%@", [fromURL path]);
NSLog(@"%@", [toURL path]);
if ([fMan fileExistsAtPath:[fromURL path]]) {
[fMan copyItemAtURL:fromURL
toURL:toURL
error:&error];
if (error)
[NSApp presentError:error];
}
}
我收到的错误:
由于不支持指定的 URL 类型,因此无法打开文件。
最后记录的内容:
fromURL = /Users/Nick/Library/Developer/Xcode/DerivedData/Prog-dpnblqaraeuecyadjgizbinfrtcm/Build/Products/Debug/Prog.app/Contents/Resources/ProgCom
toURL = /Users/Nick/Library/Prog/ProgCom
最佳答案
问题是您正在使用+[NSURL URLWithString:]
。这会产生一个无效的 URL,因为您实际上并没有给它一个 URL。您想要的是 +[NSURL fileURLWithPath:]
,它将生成一个 file:///Users/Nick/...
URL。
关于cocoa - 如何使用 NSFileManager 复制 UNIX 可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526244/