0

画像ファイルをキャッシュ ディレクトリに移動する際に問題が発生しています。私の要件は、たとえば image3.png などの 1 つのファイルを削除し、次に他のすべてのファイル (image1.png、image2.png、.....image9.png などの 9 つのファイルがあるとします) の後にその位置 (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.)

私を助けてください 。前もって感謝します。

4

1 に答える 1

0

NSFileManagerドキュメントからmoveItemAtPath:toPath:error:

同じ名前のアイテムが dstPath に既に存在する場合、このメソッドは移動の試行を中止し、適切なエラーを返します。

最初に上書きしたいファイルを削除します。

于 2012-10-04T07:22:46.127 に答える