1

我试过以下

[[NSFileManager defaultManager] copyItemAtPath:@"whatever.txt"
 toPath:@"/Volumes/MyDrive" error:&copyError];

这给了我错误“操作无法完成。文件存在”

如果我尝试将它复制到“/Volumes/MyDrive/testFolder”,那么一切都复制到 testFolder 就好了。

4

2 回答 2

5

我试过以下

[[NSFileManager defaultManager] copyItemAtPath:@"whatever.txt"
 toPath:@"/Volumes/MyDrive" error:&copyError];

这给了我错误“操作无法完成。文件存在”

首先,正如 KennyTM 已经告诉您的那样,错误消息告诉您问题的一个可能原因:文件已经存在。目的地不得存在;您必须删除它或为目的地指定不同的名称。

其次,问题还有另一个可能的原因:您只指定了目标文件夹,而不是完整的目标路径。您必须指定完整的目标路径,包括目标文件名。引用文档:

“复制文件时,目标路径必须以文件名结尾——没有隐式采用源文件名。”</p>

如果您希望副本具有路径名/Volumes/MyDrive/whatever.txt,那就是您需要传递的路径名。

另外,在尝试查看错误对象之前不要忘记检查复制是否成功。如果复制失败,您应该只查看错误对象。

如果我尝试将它复制到“/Volumes/MyDrive/testFolder”,那么一切都复制到 testFolder 就好了。

我想你会发现它testFolder实际上是一个文件——具体来说,它是whatever.txt 的副本。

于 2010-09-03T21:09:58.803 回答
3
于 2010-09-03T21:03:46.883 回答