NSFileManager -copyItemAtPath:toPath:error:失败,只读文件夹

时间:2010-11-30 20:44:27

标签: cocoa permissions copy nsfilemanager

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

错误是:
错误域= NSPOSIXErrorDomain代码= 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;
}

1 个答案:

答案 0 :(得分:1)

您确定可以阅读文件夹中的每个文件吗?如果是这样,那么这可能实际上是一个可可虫。它完全有可能创建一个新文件夹,将其设置为只读,然后尝试将文件复制到该文件夹​​中。如果您可以在一个小的测试用例中重现这一点,那么您应该submit a bug到apple。