2011-08-10 10 views
7

Estoy tratando de almacenar algo en mi carpeta de Caches en mi aplicación de iPad.NSCachesDirectory no es un directorio en mi sistema de archivos

NSArray* cachePathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString* cachePath = [cachePathArray lastObject]; 

Y cuando imprimo la ruta de archivo de regresar, me sale:

/Usuarios/Gela Soporte/Library/Application Support/iPhone Simulador/5.0/Aplicaciones/3FF7EB1A-49A9-4B13-ADC4 -DF0662BA724B/Library/Caches

Sin embargo, cuando navego a esa carpeta en mi disco duro, "Caches" no es una carpeta sino un archivo "documento" vago.

¿Alguna idea de por qué no es una carpeta y cómo puedo escribir en mi caché?

+0

veces si intenta almacenar 'las negativas en un directorio en el SDK de iOS ya que se rompe el directorio y el cambio a algún archivo de basura y todos sus datos en que se directorio se pierde .. parece un error – yasirmturk

Respuesta

13

Tal vez Simulator no tiene Caches dir. Intente esto en el dispositivo ...

Puede acceder al directorio Caches de esta manera. Yo uso este método para obtener datos de archivos ...

- (NSString *)getFileData: (NSString *)fileDirPath 
{ 
    NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString *myPath = [myPathList objectAtIndex:0]; 
    NSError *err  = nil; 
    NSString *fData  = @""; 

    myPath = [myPath stringByAppendingPathComponent:fileDirPath]; 
    if([[NSFileManager defaultManager] fileExistsAtPath:myPath]) 
    { 
     fData = [NSString stringWithContentsOfFile:myPath encoding:NSUTF8StringEncoding error:&err]; 
     if(err) NSLog(@"getFileData() - ERROR: %@",[err localizedDescription]); 
    } 
    else 
    { 
     NSLog(@"getFileData() - ERROR: This file '%@' does not exist",myPath); 
    } 
    return fData; 
} 
+0

Sí, sé cómo encontrar la ruta al directorio de Caches. El problema es que "Caches" NO es un directorio en mi disco duro. Cuando incluí la última línea de tu código de ejemplo, recibo un error que dice que la ruta NO es un directorio. – user888382

+0

Sí, mira mi actualización en la parte superior. Estaba pensando, quizás Simulator no tiene el directorio 'Caches' ... –

+0

He hecho esto en aplicaciones anteriores de iPad usando el simulador de iPad en mi computadora y tienen directorios de Documentos y Biblioteca/Cachés. Creo que el directorio de Caches en esta aplicación en particular podría haberse dañado? – user888382

Cuestiones relacionadas