Je souhaite supprimer une image du répertoire de documents de mon application. Le code que j'ai écrit pour supprimer l'image est:
-(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];
}
Son fonctionne partiellement. Ce code supprime le fichier du répertoire, mais lorsque je vérifie le contenu du répertoire, il affiche toujours le nom de l'image. Je veux supprimer complètement ce fichier du répertoire. Que dois-je changer dans le code pour faire de même? Merci
contentsOfDirectoryAtPath
(c'est- à -dire aucune mise en cache de répertoire impliquée ici). Vous devez donc avoir une simple erreur de jeu qui devrait apparaître lorsque vous regardez leNSError
contenu.Réponses:
J'ai vérifié votre code. Ça marche pour moi. Vérifiez toute erreur que vous obtenez en utilisant le code modifié ci-dessous
la source
Swift 3.0:
Grâce à @Anil Varghese, j'ai écrit un code très similaire dans swift 2.0:
la source
Swift 2.0:
la source
Dans Swift à la fois 3 et 4
ou Cette méthode peut supprimer tous les fichiers locaux
la source
Au lieu d'avoir l'erreur définie sur NULL, réglez-la sur
cela vous dira s'il supprime réellement le fichier
la source
Je veux supprimer ma base de données sqlite du répertoire de documents.Je supprime la base de données sqlite avec succès par la réponse ci-dessous
la source
la source
Version FreeGor convertie en Swift 3.0
la source
Vous pouvez double protéger la suppression de votre fichier avec NSFileManager.defaultManager (). IsDeletableFileAtPath (PathName) À partir de maintenant, vous DEVEZ utiliser do {} catch {} car les anciennes méthodes d'erreur ne fonctionnent plus. isDeletableFileAtPath () n'est pas un "throws" (ie "public func removeItemAtPath (path: String) throws") donc il n'a pas besoin du do ... catch
la source
Si vous êtes intéressé par l'API moderne, en évitant NSSearchPath et en filtrant les fichiers dans le répertoire des documents, avant la suppression, vous pouvez faire comme:
la source