NSFileManager -copyItemAtPath: topath: errore: non riesce con la cartella di sola lettura
-
29-09-2019 - |
Domanda
Sto cercando di copiare una cartella di sola lettura, ma ha i file al suo interno, in un'altra posizione. Quando uso -copyItemAtPath: topath: errore: copia il cartella, ma non i file. Il codice di esempio che dimostra l'errore è inferiore.
La modifica delle autorizzazioni della cartella prima di copiare non è un'opzione in questo caso.
Chiunque può offrire un suggerimento?
L'errore è:
Errore di dominio = NSPOSIXErrorDomain Codice = 13 = UserInfo 0x1001102a0 "L'operazione non può essere completata. Permesso negato"
userInfo del errore è: {
NSDestinationFilePath = "/ Users / xxxxxxx / Desktop / readonlyfilecopy / testdir / Abbazia Road.jpg";
NSFilePath = "/ Users / xxxxxxx / Desktop / testdir / Abbazia Road.jpg";
NSUserStringVariant = Copia;
}
#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;
}
Soluzione
Sei certo si può leggere ogni singolo file nella cartella. Se è così, allora questo potrebbe in realtà essere un bug di cacao. E 'del tutto possibile che è la creazione di una nuova cartella, l'impostazione è di sola lettura, e quindi si tenta di copiare i file nella cartella. Se è possibile riprodurre questo in un piccolo test per caso, si dovrebbe presentare un bug ad Apple.