我尝试了以下
[[NSFileManager defaultManager] copyItemAtPath:@"whatever.txt"
toPath:@"/Volumes/MyDrive" error:©Error];
这给了我错误“操作无法完成。文件存在”
如果我尝试将其复制到“/ Volumes / MyDrive / testFolder”,那么一切都复制到testFolder就好了。
答案 0 :(得分:5)
我尝试了以下
[[NSFileManager defaultManager] copyItemAtPath:@"whatever.txt" toPath:@"/Volumes/MyDrive" error:©Error];
这给了我错误“操作无法完成。文件存在”
首先,正如KennyTM已经告诉过你的那样,错误消息告诉你一个可能的问题原因:文件已经存在。目的地不得存在;您必须删除它或为目的地指定其他名称。
其次,还有另一个可能的问题原因:您只指定了目标文件夹,而不是完整的目标路径。您必须指定完整的目标路径,包括目标文件名。说明文件:
“复制文件时,目标路径必须以文件名结尾 - 没有隐式采用源文件名。”
如果您希望副本的路径名为/Volumes/MyDrive/whatever.txt
,那就是您需要传递的路径名。
另外,在尝试查看错误对象之前,不要忘记检查复制是否成功。如果复制失败,您应该只查看错误对象。
如果我尝试将其复制到“/ Volumes / MyDrive / testFolder”,那么复制到testFolder就好了。
我认为你会发现testFolder
实际上是文件专用的,它是whatever.txt的副本。
答案 1 :(得分:3)
错误不是很清楚吗? “操作无法完成。文件存在”。 -copyItemAtPath:…
的文件指出:
srcPath 中指定的文件必须存在,而操作前 dstPath 必须不存在。
如果要覆盖目标文件,则需要调用-removeItemAtPath:error:
来删除目标文件。