Voici ma méthode qui devrait simplement déplacer le contenu d'un répertoire de/unrépertoire à/addons/id/UUID:Comment déplacer un répertoire vers un nouvel emplacement sur iPhone
CFUUIDRef uuidObj = CFUUIDCreate(nil); //create a new UUID
//get the string representation of the UUID
NSString *uuidString = (NSString*)CFUUIDCreateString(nil, uuidObj);
//MOVE the addon to the addons directory addons/shortname/UUID
NSString *pathToAddon = [LWEFile createDocumentPathWithFilename:[NSString stringWithFormat:@"%@", relPath]];
NSString *pathToAddonDest = [LWEFile createDocumentPathWithFilename:[NSString stringWithFormat:@"addons/%@/%@", [character objectForKey:@"shortName"], uuidString]];
// move the files
NSError* error;
if([[NSFileManager defaultManager] moveItemAtPath:pathToAddon toPath:pathToAddonDest error:&error] != YES)
{
NSLog(@"Unable to move file: %@", [error localizedDescription]);
}
//release the uuid stuff
[uuidString release];
CFRelease(uuidObj);
Le mouvement échoue avec l'opération n'a pas pu être complété. (Erreur de cacao 4.). Cependant, le même code fonctionne si je change pathToAddonDest à:
NSString *pathToAddonDest = [LWEFile createDocumentPathWithFilename:[NSString stringWithFormat:@"addons/%@", [character objectForKey:@"shortName"], uuidString]];
Je peux écrire de/unrépertoire à/addons/unrépertoire mais pas de/unrépertoire à/addons/unrépertoire/UUID.
Des idées pour lesquelles un changement de nom apparemment simple ne fonctionnerait pas de cette manière?
Presque à droite. vous devez créer le chemin jusqu'au nom de fichier en cours de déplacement. So/addons/someDirectory doit exister mais/addons/someDirectory/UUID ne doit pas exister. Merci pour l'idée! – Ross