NSFileManager -copyItemAtPath: toPath: ошибка: ошибка с папкой только для чтения - PullRequest
1 голос
/ 30 ноября 2010

Я пытаюсь скопировать папку, которая доступна только для чтения, но в которой есть файлы, в другое место.Когда я использую -copyItemAtPath: toPath: error: он копирует папку, но не файлы.Пример кода, демонстрирующий ошибку, приведен ниже.
Изменение разрешений для папки перед копированием в этом случае не вариант.
Может кто-нибудь предложить предложение?

Ошибка:
Ошибка домена = NSPOSIXErrorDomain Code = 13 UserInfo = 0x1001102a0 "Операция не может быть завершена. Разрешение отклонено"

Ошибка userInfo: {
NSDestinationFilePath = "/ Users / xxxxxxx / Desktop / readonlyfilecopy / testdir/ Abbey Road.jpg ";
NSFilePath =" / Users / xxxxxxx / Desktop / testdir / Abbey Road.jpg ";
NSUserStringVariant = Copy;
}

#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 Ответ

1 голос
/ 01 декабря 2010

Вы уверены, что можете прочитать каждый файл в папке.Если так, то это может быть ошибка Какао.Вполне возможно, что он создает новую папку, устанавливает ее только для чтения, а затем пытается скопировать файлы в папку.Если вы можете воспроизвести это в небольшом тестовом примере, вы должны отправить ошибку в apple.

...