我在缓存目录中移动图像文件时遇到问题。我的要求是当我删除一个文件例如image3.png然后所有其他文件(假设有9个文件,如image1.png,image2.png,..... image9.png)之后的那个位置(image4.png, ....,image9.png)将移动到之前的位置。我想将像image4.png这样的文件重命名为image 3.png。 以下是我的代码
NSError *error=nil;
NSString *imgName = [NSString stringWithFormat:@"image%d.png",3];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:imgName];
[fileManager removeItemAtPath: fullPath error:NULL];
for (int i=3; i<=9 ; i++) {
NSString *imgName1 = [NSString stringWithFormat:@"image%d.png",i];
NSString *getImagePath1 = [documentsDirectory stringByAppendingPathComponent:imgName1];
NSString *imgName2 = [NSString stringWithFormat:@"image%d.png",i+1];
NSString *getImagePath2 = [documentsDirectory stringByAppendingPathComponent:imgName2];
if ([fileManager moveItemAtPath:getImagePath2 toPath:getImagePath1 error:&error] != YES)
NSLog(@"Unable to move file: %@", [error localizedDescription]);
// Show contents of Documents directory
NSLog(@"Documents directory: %@",
[fileManager contentsOfDirectoryAtPath:documentsDirectory error:&error]);
}
但它显示以下错误
Unable to move file: The operation couldn’t be completed. (Cocoa error 516.)
请帮帮我。 提前谢谢。
答案 0 :(得分:0)
来自NSFileManager
上的moveItemAtPath:toPath:error:
个文档:
如果dstPath中已存在具有相同名称的项,则此方法 中止移动尝试并返回适当的错误
首先删除要覆盖的文件。