【发布时间】:2012-05-10 01:05:13
【问题描述】:
我正在尝试使用 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];
}
}
我收到的错误:
The file couldn't be opened because the specified URL type isn't supported.
最后记录了什么:
fromURL = /Users/Nick/Library/Developer/Xcode/DerivedData/Prog-dpnblqaraeuecyadjgizbinfrtcm/Build/Products/Debug/Prog.app/Contents/Resources/ProgCom
toURL = /Users/Nick/Library/Prog/ProgCom
【问题讨论】:
-
它应该可以工作。没有什么特别的技巧,也不关心文件扩展名。听起来您的网址不正确。记录这两个 URL 并将它们发布在您的问题中。
标签: cocoa nsfilemanager