Quero excluir uma imagem do diretório de documentos do meu aplicativo. O código que escrevi para excluir a imagem é:
-(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 deleta o arquivo do diretório, mas quando estou verificando o conteúdo no diretório, ainda mostra o nome da imagem lá. Quero remover completamente esse arquivo do diretório. O que devo alterar no código para fazer o mesmo? obrigado
contentsOfDirectoryAtPath
(ou seja, nenhum cache de diretório envolvido aqui). Portanto, você deve ter algum erro simples no jogo que deve se tornar aparente quando você olha oNSError
conteúdo.Respostas:
Eu verifiquei seu código. Está funcionando para mim. Verifique qualquer erro que você esteja obtendo usando o código modificado abaixo
fonte
Swift 3.0:
Graças a @Anil Varghese, escrevi um código muito semelhante em swift 2.0:
fonte
Swift 2.0:
fonte
Em Swift 3 e 4
ou Este método pode deletar todos os arquivos locais
fonte
Em vez de definir o erro como NULL, defina-o como
isso dirá se ele está realmente excluindo o arquivo
fonte
Eu quero deletar meu banco de dados sqlite do diretório de documentos. Eu deleto o banco de dados sqlite com sucesso pela resposta abaixo
fonte
fonte
Versão FreeGor convertida para Swift 3.0
fonte
Você pode proteger duplamente a remoção do arquivo com NSFileManager.defaultManager (). IsDeletableFileAtPath (PathName) A partir de agora, você DEVE usar do {} catch {}, pois os métodos de erro antigos não funcionam mais. isDeletableFileAtPath () não é um "throws" (ou seja, "public func removeItemAtPath (path: String) throws"), portanto, não precisa do ... catch
fonte
Se você é interessante em uma API moderna, evitando NSSearchPath e filtrar arquivos no diretório de documentos, antes da exclusão, você pode fazer como:
fonte