2

当我使用 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/" 之类的其他名称时,错误就会消失。我不知道为什么。谢谢 !!

4

1 回答 1

4

您需要指定完整的路径名,包括实际的文件名。

Apple 的copyItemAtPath:toPath:error:状态文档,用于“toPath:”参数:

放置 srcPath 副本的路径。此路径必须在其新位置包含文件或目录的名称。此参数不得为 nil。

您现在正在做的是尝试用文件覆盖整个硬盘驱动器(卷)。

于 2013-07-14T05:20:27.887 回答