2012-06-25 19 views
10

estoy usando la siguiente línea de código para guardar mi archivo de yoyo.txt en la carpeta Documentos ::crear una carpeta mediante programación en Xcode - C Objetivo

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

Sin embargo, deseo de salvar mi archivo en una carpeta de yoyo, es decir, dentro de la carpeta Documentos, es decir, quiero crear otra carpeta llamada "yoyo" y luego guardar mi archivo de yoyo.txt en ella. Cómo puedo hacer eso ?? Gracias.

+0

Xcode es el IDE. El lenguaje es Objective C, puede escribir el mismo código en un editor de texto y compilarlo en la línea de comando. Sin embargo, es un error común mezclar 'Xcode' y' Objective C'. –

Respuesta

15

Aquí hay un código de ejemplo (asumen manager es [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

qué es "isDictionary" en su código. Además, ¿cuál es el propósito de NSDictionary que ha declarado en su código? – kamalbhai

+0

isDictionary es BOOL, se usa para verificar si el archivo que existe en la ruta es un directorio, porque podría haber un archivo que no es un directorio ... El diccionario se usa para pasar atributos para el directorio recién creado en el código que tengo publicado esto es 'El archivo se almacena en un formato encriptado en el disco y no se puede leer o escribir mientras el dispositivo está bloqueado o arrancando. Puede pasar' nil' a esto. También puede ver [Referencia de clase NSFileManager] (https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsfilemanager_Class/Reference/Reference.html) – 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

Aquí rutaDatos será la ruta final para guardar el archivo

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"]; 
Cuestiones relacionadas