1

我正在尝试将只读但其中包含文件的文件夹复制到另一个位置。当我使用 -copyItemAtPath:toPath:error: 它复制文件夹,但不复制文件。演示错误的示例代码如下。
在这种情况下,不能在复制之前更改文件夹的权限。
任何人都可以提供建议吗?

错误是:
Error Domain=NSPOSIXErrorDomain Code=13 UserInfo=0x1001102a0“操作无法完成。权限被拒绝”

错误的 userInfo 是: {
NSDestinationFilePath = "/Users/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;
}
4

1 回答 1

1

您确定可以读取文件夹中的每个文件吗?如果是这样,那么这实际上可能是一个 Cocoa 错误。它完全有可能创建一个新文件夹,将其设置为只读,然后尝试将文件复制到该文件夹​​中。如果你可以在一个小测试用例中重现这个,你应该向苹果提交一个错误。

于 2010-11-30T22:00:32.970 回答