Próbuję przenieść folder z plikiem do folderu tymczasowego, ale zawsze pojawia się ten sam błąd: Nie można ukończyć operacji. (Błąd kakao 516.)Dziwny błąd podczas przenoszenia folderu do temp za pomocą metody moveItemAtPath. Błąd kakao 516
To jest kod, widzisz coś dziwnego? Z góry dziękuję.
// create new folder
NSString* newPath=[[self getDocumentsDirectory] stringByAppendingPathComponent:@"algo_bueno"];
NSLog(@"newPath %@", newPath);
if ([[NSFileManager defaultManager] fileExistsAtPath:newPath]) {
NSLog(@"newPath already exists.");
} else {
NSError *error;
if ([[NSFileManager defaultManager] createDirectoryAtPath:newPath withIntermediateDirectories:YES attributes:nil error:&error]) {
NSLog(@"newPath created.");
} else {
NSLog(@"Unable to create directory: %@", error.localizedDescription);
return;
}
}
// create a file in that folder
NSError *error;
NSString* myString=[NSString stringWithFormat:@"Probando..."];
NSString* filePath=[newPath stringByAppendingPathComponent:@"myfile.txt"];
if ([myString writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error]) {
NSLog(@"File created.");
} else {
NSLog(@"Failed creating file. %@", error.localizedDescription);
return;
}
// move this folder and its folder
NSString *tmpDir = NSTemporaryDirectory();
NSLog(@"temporary directory, %@", tmpDir);
if ([[NSFileManager defaultManager] moveItemAtPath:newPath toPath:tmpDir error:&error]) {
NSLog(@"Movido a temp correctamente");
} else {
NSLog(@"Failed moving to temp. %@", error.localizedDescription);
}
Dzięki za odpowiedź! Zapomniałem powiedzieć, że pracuję dla platformy iOS, chociaż dokument i kod błędu są takie same, jeśli zmienisz URL "mac" przez "ios". Próbowałem, co powiedziałeś, usuwając moją aplikację z mojego symulatora i urządzenia (tak, temp dir jest pusty) i mówi 516. O tym, co mówisz o pliku, w dokumentach, które mogę przeczytać: "moveItemAtPath: toPath: error: Przenosi plik lub katalog o określonej ścieżce do nowej lokalizacji synchronicznie " Czy znasz inny sposób przenoszenia folderu do folderu tmp? Kategoria lub biblioteka? Dzięki! – Ricardo
Nawiasem mówiąc, twój kod działa, ale przenosi tylko plik, ale wolę przenieść folder pełen plików. Dowolny pomysł? Być może przy użyciu rekursji, ale chciałem tylko przenieść folder, ponieważ usunięcie folderu (lub skopiowanie pliku według pliku) zajmuje kilka sekund (jest wiele plików, około 500 MB). Czy masz pomysł lub sugestię? Bardzo dziękuję za Twoją pomoc. – Ricardo
Powinien działać, jeśli po prostu przekazujesz ścieżkę do folderu zamiast ścieżki do pliku, np. Zamiast tylko 'newPath' użyj' [newPath stringByDeletingLastPathComponent] ', aby uzyskać folder, w którym znajduje się nowy plik? – deanWombourne