在Iphone中的缓存目录中移动文件时出错

时间:2012-10-04 07:17:31

标签: iphone caching move

我在缓存目录中移动图像文件时遇到问题。我的要求是当我删除一个文件例如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.)

请帮帮我。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

来自NSFileManager上的moveItemAtPath:toPath:error:个文档:

  

如果dstPath中已存在具有相同名称的项,则此方法   中止移动尝试并返回适当的错误

首先删除要覆盖的文件。