2009-07-28 4 views
5

J'essaie d'écrire dans le dossier cache de l'application iPhone avec des images téléchargées à partir d'un serveur. Mon plan est de sauvegarder les images dans "site.com/path/to/image.jpg", car la mise en miroir de la structure du dossier du serveur rend les noms en double impossibles, et il semble juste la bonne façon de le faire. Malheureusement, il semble que je doive créer les dossiers moi-même avant d'écrire le fichier. Existe-t-il une méthode dans Objective-C pour appeler qui, si donné "/ Users/Me/a/b/c" (non, ce n'est pas un chemin iPhone valide, juste un exemple) réalisera/Users/Me existe, et puis créer un, puis sous un créer b, et ainsi de suite jusqu'à ce qu'il arrive à la fin?Existe-t-il une méthode dans Objective-C pour créer récursivement des répertoires à partir d'une chaîne?

Je pourrais l'écrire moi-même, mais j'aime utiliser autant que possible les fonctions intégrées. Je n'ai rien trouvé à propos de ça ici.

Répondre

12

Essayez ceci:

NSString * path = @"/Users/Me/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z"; 
NSError * error = nil; 
BOOL success = [[NSFileManager defaultManager] createDirectoryAtPath:path 
             withIntermediateDirectories:YES 
                  attributes:nil 
                   error:&error]; 
if (!success || error) { 
    NSLog(@"Error! %@", error); 
} else { 
    NSLog(@"Success!"); 
} 
+0

Faites-vous généralement le succès || Erreur? Est-ce nécessaire? – zekel

+0

@zekel il a été porté à mon attention récemment que '! Succès 'est le bon contrôle à faire. –

+0

C'est ce que je pensais, que lorsque la méthode réussit 'error' n'est pas garanti être nul. – zekel

Questions connexes