Question

Je suis en train de copier un dossier en lecture seule, mais a des fichiers à l'intérieur, à un autre endroit. Quand j'utilise -copyItemAtPath: toPath: Erreur: il copie le dossier, mais pas les fichiers. Exemple de code qui montre l'erreur est ci-dessous.
Modification des autorisations du dossier avant de copier n'est pas une option dans ce cas.
Quelqu'un peut-il faire une suggestion?

L'erreur est:
Erreur de domaine = NSPOSIXErrorDomain Code = 13 UserInfo = 0x1001102a0 "L'opération n'a pas pu être terminée. Permission refusée"

userInfo de l'erreur est: {
    NSDestinationFilePath = "/ Users / xxxxxxx / Desktop / readonlyfilecopy / testdir / Abbaye road.jpg";
    NSFilePath = "/ Users / xxxxxxx / Desktop / testdir / Abbaye road.jpg";
    NSUserStringVariant = Copie;
}

#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;
}
Était-ce utile?

La solution

Êtes-vous certain que vous pouvez lire chaque fichier dans le dossier. Si oui, cela peut effectivement être un bug Cocoa. Il est tout à fait possible que cela crée un nouveau dossier, la mise en lecture seule, puis tenter de copier des fichiers dans le dossier. Si vous pouvez reproduire cela dans un petit test cas, vous devriez un bogue à la pomme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top