当我使用NSFileManager通过copyItemAtPath将一个文件(目录)从一个地方复制到另一个地方时,它给了我错误。
以下是代码:
[[NSFileManager defaultManager]copyItemAtPath:@"/Users/name/Documents/localhost/websiteDesign/_Software/" toPath:@"/Volumes/NAME/" error:&handleError];
NSLog(@"%@", [handleError description]);
这是错误:
Error Domain=NSCocoaErrorDomain Code=516 "“_Software” couldn’t be copied to “Volumes” because an item with the same name already exists." UserInfo=0x102842d00
{NSSourceFilePathErrorKey=/Users/name/Documents/localhost/websiteDesign/_Software/, NSUserStringVariant=(Copy), NSDestinationFilePath=/Volumes/NAME/, NSFilePath=/Users/name/Documents/localhost/websiteDesign/_Software/, NSUnderlyingError=0x10283f8e0 "The operation couldn’t be completed. File exists"}
但是,当我将目标文件的名称@“/ Volumes / NAME /”更改为@“/ Volumes / aaa /”之类的其他内容时,错误将会消失。我不知道为什么。谢谢!!
答案 0 :(得分:3)
您需要指定完整路径名,包括实际文件名。
Apple's documentation for copyItemAtPath:toPath:error:
个州,对于“toPath:”参数:
放置srcPath副本的路径。 此路径必须 在新位置包含文件或目录的名称。这 参数不能为零。
您现在正在尝试用文件覆盖整个硬盘(卷)。