2013-05-04 4 views
6

Je souhaite créer un répertoire dans mon applicationSupportDirectory. Ma compréhension est que l'applicationSupportDirectory ne permet pas aux utilisateurs de voir les données à l'intérieur. C'est pourquoi je l'ai choisi. Cependant, le code que j'utilise ci-dessous semble échouer et je ne sais pas pourquoi.Créer un répertoire par programme

Quelqu'un peut-il me dire ce que j'ai fait de mal? Merci!

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); 
NSString *applicationDirectory = [paths objectAtIndex:0]; // Get directory 
NSString *dataPath = [applicationDirectory stringByAppendingPathComponent:@"drawings"]; 

if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]){ 

NSError* error; 
if([[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]) 
    ;// success 
else 
{ 
    NSLog(@"Failed"); 
} 
} 
} 
+0

pls changement withIntermediateDirectories: est "OUI" – dhaya

Répondre

5
NSString *directoryName = @"drawing"; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); 

NSString *applicationDirectory = [paths objectAtIndex:0]; 
NSString *filePathAndDirectory = [applicationDirectory stringByAppendingPathComponent:directoryName]; 
NSError *error; 

if (![[NSFileManager defaultManager] createDirectoryAtPath:filePathAndDirectory 
           withIntermediateDirectories:YES 
               attributes:nil 
                error:&error]) 
{ 
    NSLog(@"Create directory error: %@", error); 
} 

espère que cela vous aidera

6

Essayez celui-ci, ça marche pour moi.

NSString* documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                   NSUserDomainMask, 
                   YES)[0]; 
NSString *folder = [documentsPath stringByAppendingPathComponent:@"foldername"]; 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSError *error = nil; 
if (![fileManager fileExistsAtPath:folder]){ 
    [fileManager createDirectoryAtPath:folder 
      withIntermediateDirectories:YES 
          attributes:nil 
           error:&error]; 
} 
+0

cette réponse est en fait mieux. Il crée uniquement le répertoire s'il n'existe pas. Pouces vers le haut! – Farini

-1

Pour créer Dirtectory

NSError *error; 
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/directoryname"]; 
NSLog(@"%@",path); 
if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { 
    [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error]; 
    // Set do not backup attribute to whole folder 

}