trato de mover una carpeta con un archivo a una carpeta temporal, pero siempre recibo el mismo error: La operación no se pudo completar. (Error de cacao 516.)Extraño error al mover una carpeta a la temperatura con moveItemAtPath. de error de cacao 516
Este es el código, lo que ves algo extraño? Gracias por adelantado.
// 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);
}
Gracias por la respuesta! Olvidé decir que estoy trabajando para la plataforma iOS, aunque el documento y el código de error son los mismos si cambias en la URL "mac" por "ios". Intenté lo que dijiste, eliminando mi aplicación de mi simulador y dispositivo (por lo tanto, el directorio temporal está vacío) y dice 516. Acerca de lo que dices sobre un archivo, en los documentos que puedo leer: "moveItemAtPath: toPath: error: Mueve el archivo o directorio en la ruta especificada a una nueva ubicación de forma síncrona " ¿Conoces alguna otra forma de mover una carpeta dentro de la carpeta tmp? Una categoría o biblioteca? ¡Gracias! – Ricardo
Por cierto, su código funciona, pero solo mueve un archivo, pero prefiero mover una carpeta llena de archivos. ¿Alguna idea? Tal vez usando recursividad, pero solo quería mover la carpeta porque eliminar la carpeta (o copiar archivo por archivo) toma unos segundos (hay muchos archivos, aproximadamente 500 MB). ¿Alguna idea o sugerencia? Muchas gracias por tu ayuda. – Ricardo
Debería funcionar si acaba de pasar la ruta de la carpeta en lugar de la ruta del archivo, es decir, en lugar de 'newPath' usar' [newPath stringByDeletingLastPathComponent] 'para obtener la carpeta en la que se encuentra newFile? – deanWombourne