2012-06-25 4 views
10

ich die folgende Codezeile bin mit meiner Datei von yoyo.txt im Ordner Dokumente ::Ein Ordner Programmatically In Xcode erstellen - Objective C

NSString *docDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; 
NSLog(@"docDir is yoyo :: %@", docDir); 
NSString *FilePath = [docDir stringByAppendingPathComponent:@"yoyo.txt"]; 

jedoch zu sparen, möchte ich meine Datei speichern in ein Ordner von yoyo dh im Ordner Dokumente, dh ich möchte einen anderen Ordner namens "yoyo" erstellen und dann meine Datei yoyo.txt speichern. Wie kann ich das machen ?? Vielen Dank.

+0

Xcode ist der IDE zum Speichern. Die Sprache ist Objective C, Sie können denselben Code in einem Texteditor schreiben und in der Befehlszeile kompilieren. Es ist jedoch ein häufiger Fehler, "Xcode" und "Objective C" zu mischen. –

Antwort

15

Hier ist ein Beispielcode (unter der Annahme manager ist [NSFileManager defaultManager]):

BOOL isDirectory; 
NSString *yoyoDir = [docDir stringByAppendingPathComponent:@"yoyo"]; 
if (![manager fileExistsAtPath:yoyoDir isDirectory:&isDirectory] || !isDirectory) { 
     NSError *error = nil; 
     NSDictionary *attr = [NSDictionary dictionaryWithObject:NSFileProtectionComplete 
                 forKey:NSFileProtectionKey]; 
     [manager createDirectoryAtPath:yoyoDir 
      withIntermediateDirectories:YES 
          attributes:attr 
           error:&error]; 
     if (error) 
      NSLog(@"Error creating directory path: %@", [error localizedDescription]); 
    } 
+0

Was ist "isDictionary" in Ihrem Code. Auch was ist der Zweck von NSDictionary, die Sie in Ihrem Code deklariert haben? – kamalbhai

+0

isDictionary ist BOOL, um zu überprüfen, ob die im Pfad vorhandene Datei ein Verzeichnis ist, weil es eine Datei geben könnte, die kein Verzeichnis ist ... Das Wörterbuch wird verwendet, um Attribute für das neu erstellte Verzeichnis in dem Code zu übergeben, den ich habe posted this is 'Die Datei wird in einem verschlüsselten Format auf der Festplatte gespeichert und kann weder gelesen noch geschrieben werden, während das Gerät gesperrt oder gestartet wird. Sie können' nil' an diese Datei übergeben. Sie können auch [NSFileManager Klassenreferenz] (https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsfilemanager_Class/Reference/Reference.html) sehen. – graver

11
+(void)createDirForImage :(NSString *)dirName 
{ 
    NSString *path; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    path = [[paths objectAtIndex:0] stringByAppendingPathComponent:dirName]; 
    NSError *error; 
    if (![[NSFileManager defaultManager] fileExistsAtPath:path]) //Does directory already exist? 
    { 
     if (![[NSFileManager defaultManager] createDirectoryAtPath:path 
             withIntermediateDirectories:NO 
                 attributes:nil 
                  error:&error]) 
     { 
      NSLog(@"Create directory error: %@", error); 
     } 
    } 

} 
2

Hier dataPath die Endstrecke Ihre Datei wird

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

     if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]){ 
      [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder 
    } 
    dataPath = [dataPath stringByAppendingPathComponent:@"/yoyo.txt"]; 
Verwandte Themen