Quiero eliminar una imagen del directorio de documentos de mi aplicación. El código que he escrito para eliminar la imagen es:
-(void)removeImage:(NSString *)fileName
{
fileManager = [NSFileManager defaultManager];
paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsPath = [paths objectAtIndex:0];
filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", fileName]];
[fileManager removeItemAtPath:filePath error:NULL];
UIAlertView *removeSuccessFulAlert=[[UIAlertView alloc]initWithTitle:@"Congratulation:" message:@"Successfully removed" delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil];
[removeSuccessFulAlert show];
}
Está funcionando parcialmente. Este código elimina el archivo del directorio, pero cuando estoy verificando el contenido en el directorio, todavía muestra el nombre de la imagen allí. Quiero eliminar completamente ese archivo del directorio. ¿Qué debo cambiar en el código para hacer lo mismo? Gracias
contentsOfDirectoryAtPath
(es decir, no hay almacenamiento en caché de directorio involucrado aquí). Por lo tanto, debe tener algún error simple en el juego que debería ser evidente cuando mira elNSError
contenido.Respuestas:
Revisé tu código. Me está funcionando. Verifique cualquier error que reciba usando el código modificado a continuación
fuente
Swift 3.0:
Gracias a @Anil Varghese, escribí un código muy similar en swift 2.0:
fuente
Swift 2.0:
fuente
En Swift tanto 3 como 4
o este método puede eliminar todos los archivos locales
fuente
En lugar de establecer el error en NULL, configúrelo en
esto le dirá si realmente está eliminando el archivo
fuente
Quiero eliminar mi sqlite db del directorio de documentos. Elimino el sqlite db con éxito mediante la siguiente respuesta
fuente
fuente
Versión FreeGor convertida a Swift 3.0
fuente
Puede proteger dos veces la eliminación de su archivo con NSFileManager.defaultManager (). IsDeletableFileAtPath (PathName) A partir de ahora DEBE usar do {} catch {} ya que los métodos de error antiguos ya no funcionan. isDeletableFileAtPath () no es un "throws" (es decir, "public func removeItemAtPath (path: String) throws") por lo que no necesita el do ... catch
fuente
Si está interesado en la forma api moderna, evitando NSSearchPath y filtrando archivos en el directorio de documentos, antes de la eliminación, puede hacer lo siguiente:
fuente