2010-09-08 8 views
32

Nuevo al objetivo C. He creado algunos directorios que contienen archivos pdf para una aplicación de iPhone. ¿Cómo puedo eliminar un directorio y sus contenidos usando NSFileManager?Cómo eliminar un directorio y su contenido usando NSFileManager

¿Necesito pasar por el contenido y eliminarlo primero? Cualquier código de muestras sería muy apreciado.

Gracias de antemano.

Respuesta

44

Para empezar, sería conveniente consultar la documentación de NSFileManager de Apple para el iPhone: NSFileManager Class Reference. En segundo lugar, observe el método de -removeItemAtPath:error: y su documentación. Eso es lo que estás buscando.

+2

Si paso un directorio para -removeItemAtPath: error: ¿también eliminar el contenido? Suena como una pregunta tonta, pero el único otro ejemplo que he encontrado elimina primero el contenido del directorio. –

+22

Sí, lo hará, y si alguna vez tiene dudas sobre algo, simplemente configure un pequeño programa de prueba para ver si lo hace. –

+8

@ItaiFerber Probarlo está bien, pero pedir resultados en una respuesta de búsqueda de fuentes múltiples publicada aquí en la web. Entonces: preguntar primero tiene sus ventajas. –

35

Heres algo de código que utilizo que he corregir para adaptarse a la pregunta

- (NSMutableString*)getUserDocumentDir { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSMutableString *path = [NSMutableString stringWithString:[paths objectAtIndex:0]]; 
    return path; 
} 


- (BOOL) createMyDocsDirectory 
{ 
    NSMutableString *path = [self getUserDocumentDir]; 
    [path appendString:@"/MyDocs"]; 
    NSLog(@"createpath:%@",path); 
    return [[NSFileManager defaultManager] createDirectoryAtPath:path 
              withIntermediateDirectories:NO 
              attributes:nil 
              error:NULL]; 
} 

- (BOOL) deleteMyDocsDirectory 
{ 
    NSMutableString *path = [self getUserDocumentDir]; 
    [path appendString:@"/MyDocs"]; 
    return [[NSFileManager defaultManager] removeItemAtPath:path error:nil]; 
} 
+0

cómo eliminar un conjunto específico de imágenes? – Bazinga

+2

¡Considere stringByAppendingPathComponent en lugar de appendString! –

Cuestiones relacionadas