2011-01-24 5 views
3

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?

Répondre

3

Vous devez créer un répertoire avant de pouvoir le déplacer. /addons/someDirectory/UUID --- créez ce chemin avant de tenter de déplacer le contenu.

+2

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

Questions connexes