如何使用cocoa将文件复制到便携式驱动器根目录?

Ran*_*all 1 cocoa file-copying

我尝试了以下内容

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

这给了我错误"操作无法完成.文件存在"

如果我尝试将其复制到"/ Volumes/MyDrive/testFolder",那么复制到testFolder就好了.

Pet*_*sey 5

我尝试了以下内容

[[NSFileManager defaultManager] copyItemAtPath:@"whatever.txt"
 toPath:@"/Volumes/MyDrive" error:&copyError];
Run Code Online (Sandbox Code Playgroud)

这给了我错误"操作无法完成.文件存在"

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

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

"当复制文件时,目标路径必须以文件名结尾 - 没有隐式采用源文件名."

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

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

如果我尝试将其复制到"/ Volumes/MyDrive/testFolder",那么复制到testFolder就好了.

我认为你会发现它testFolder实际上是一个特定于文件的,它是whatever.txt的副本.