2013-08-05 1 views
3

Je souhaite créer plusieurs répertoires que je ne connais pas. C'est mon code jusqu'à maintenant.Création de plusieurs répertoires dans le dossier de documents pour iOS

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder 
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"tops",@"bottoms",@"right" ]; 

    if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]) 
     [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil]; //Create folder 

} 

Je veux avoir 4 répertoires qui sont nommés fonds de hauts droite et à gauche, il ne fonctionne pas mais si je le fais de la manière ci-dessus .. Est-il possible de faire plusieurs répertoires en utilisant ce code? ou mon code est-il faux? Merci!

+0

vous devez itérer quatre fois pour créer 4 répertoires –

+0

Hmm .. [cette question exacte] (http://stackoverflow.com/questions/18055646/creating-multiple-directory-in-documents) a été demandé par un autre utilisateur il y a quelque temps (était downvoted et mis ** en attente **). Et votre profil est créé il y a quelques minutes! Je suis suspicieux. – Amar

+0

@Amar Vous avez raison. On dirait le même. –

Répondre

8

Essayez ce code.

Pour créer des répertoires comme vous l'avez demandé.

NSArray *directoryNames = [NSArray arrayWithObjects:@"tops",@"bottoms",@"right",@"left",nil]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder 

for (int i = 0; i < [directoryNames count] ; i++) { 
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:[directoryNames objectAtIndex:i]]; 
    if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]) 
     [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil]; //Create folder 
} 

Pour utiliser vos répertoires créés n'importe où dans votre application.

NSArray *directoryNames = [NSArray arrayWithObjects:@"tops",@"bottoms",@"right",@"left",nil]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder 

// This will return the folder name in the 0 position. In yours "tops" 
NSString *topDirPath = [documentsDirectory stringByAppendingPathComponent:[directoryNames objectAtIndex:0]]; 
// This will return the file path in your "tops" folder 
NSString *filePath = [topDirPath stringByAppendingPathComponent:@"MYIMAGE"]; 

Pour stocker un fichier image

NSData *imageDataToStore = UIImagePNGRepresentation(image); 
[imageDataToStore writeToFile:filePath atomically:YES]; 

Pour récupérer un fichier image

// Convert the file into data and then into image. 
NSData *imageData = [[NSData alloc] initWithContentsOfFile:filePath]; 
UIImage *yourImage = [UIImage imageWithData:imageData]; 
+0

Im obtenir des erreurs en disant l'utilisation de l'identificateur non déclaré "i" et comment dois-je rappeler le répertoire afin que je puisse enregistrer des photos .. – AppleDevram

+0

désolé j'ai écrit le code dans la boîte de réponse dans SO. donc seulement. Maintenant, j'ai déclaré 'i' dans la boucle' for'. Vérifie-le maintenant. –

+0

Enfin une autre question comment rappelez-vous le répertoire afin que je puisse enregistrer des photos dans le répertoire que j'ai créé .. – AppleDevram

Questions connexes