moveItemAtPath.没有错误,但没有工作

Jus*_*tin 1 cocoa objective-c nsfilemanager

我试图移动文件.下面我正在测试路径是否存在.他们这样做,但copyItemAtPath和moveItemAtPath似乎都不起作用.

NSString *testUrl = @"/Users/justinshulman/Documents/test2";
if ([[NSFileManager defaultManager]fileExistsAtPath:testUrl]) {
    NSLog(@"yes");
}
NSString *testUrl2 = @"/Users/justinshulman/Documents/test1";
if ([[NSFileManager defaultManager]fileExistsAtPath:testUrl2]) {
    NSLog(@"yes");
}
NSLog(@"%@",testUrl);
NSLog(@"%@",testUrl2);
[[NSFileManager defaultManager]copyItemAtPath:testUrl2 toPath:testUrl error:nil];
[[NSFileManager defaultManager]moveItemAtPath:testUrl2 toPath:testUrl error:nil];
Run Code Online (Sandbox Code Playgroud)

mic*_*tox 5

这正是您的问题,如果目标文件已存在,则移动和复制实际上不会覆盖目标文件.您必须先将其删除,然后将另一个文件复制(或移动)到该URL.

试试吧

[[NSFileManager defaultManager] removeItemAtPath:testUrl error:nil];
[[NSFileManager defaultManager]copyItemAtPath:testUrl2 toPath:testUrl error:nil];
Run Code Online (Sandbox Code Playgroud)

它应该工作正常.