2013-05-04 12 views
6

Chcę utworzyć katalog wewnątrz mojego applicationSupportDirectory. Rozumiem, że applicationSupportDirectory nie pozwala użytkownikom na przeglądanie danych wewnątrz. Właśnie dlatego wybrałem to. Jednak kod, którego używam poniżej wydaje się zawodzić i nie jestem pewien dlaczego.Utwórz katalog programowo

Czy ktoś może mi powiedzieć, co zrobiłem źle? Dzięki!

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 zmienić withIntermediateDirectories: jest "TAK" – dhaya

Odpowiedz

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); 
} 

nadzieję, że pomoże Ci

6

Spróbuj tego, że pracuje dla mnie.

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

ta odpowiedź jest lepsza. Tworzy tylko katalog, jeśli nie istnieje. Kciuki w górę! – Farini

-1

Aby utworzyć 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 

} 
Powiązane problemy