2010-11-30 6 views
1

読み取り専用ですが、その中にファイルがあるフォルダを別の場所にコピーしようとしています。 -copyItemAtPathを使用すると:toPath:error:フォルダをコピーしますが、ファイルはコピーしません。エラーを示すサンプルコードは以下のとおりです。
この場合、コピーする前にフォルダのアクセス許可を変更するオプションはありません。
誰でも提案を提供できますか?NSFileManager -copyItemAtPath:toPath:エラー:読み取り専用フォルダでエラーが発生します。

エラーは次のとおりです。
エラードメイン= NSPOSIXErrorDomainコード= 13のUserInfo = 0x1001102a0エラーのUSERINFOがある

"操作を完了できませんでしたパーミッションが拒否されました":{
NSDestinationFilePath =「/ユーザ/ xxxxxxx/Desktop/readonlyfilecopy/testdir/Abbey Road.jpg ";
NSFilePath = "/ Users/xxxxxxx/Desktop/testdir/Abbey Road.jpg";
NSUserStringVariant =コピー;
}

#import <Foundation/Foundation.h> 

int main (int argc, const char * argv[]) { 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 

    NSString* src = @"/Users/xxxxxxx/Desktop/testdir"; 
    NSString* target = @"/Users/xxxxxxx/Desktop/readonlyfilecopy/testdir"; 
    NSError* error = nil; 

    [[NSFileManager defaultManager] copyItemAtPath:src toPath:target error:&error]; 

    if (error) { 
     NSLog(@"%@", error); 
     NSLog(@"%@", [error userInfo]); 
    } 

    [pool drain]; 
    return 0; 
} 
+0

読み取り専用と言うと、r-xまたはr--許可を意味しますか? – JWWalker

+0

Finder入手情報には「読み取り専用」、ls -lにはr-xr-xr-xが表示されます。いくつかのファイルを新しいフォルダにコピーし、情報を取得し、すべての権限を読み取り専用に設定して、フォルダを作成しました。 – Mel

答えて

1

は、あなたは、フォルダ内のすべての1つのファイルを読むことができます確信しています。もしそうなら、これは実際にはココアバグかもしれません。新しいフォルダを作成し、それを読み取り専用に設定して、フォルダにファイルをコピーしようとすることは、まったく可能です。小さなテストケースでこれを再現できるのであれば、アップルにsubmit a bugする必要があります。

+0

はい、私はフォルダ内のすべてのファイルを読むことができると確信しています。私はバグを提出します。ありがとうございました。 – Mel

関連する問題