Mon code Java est incapable de supprimer des fichiers sur le disque dur du système. Lorsque la fonction file.delete()
est appelée, elle renvoie false
. Des idées, pourquoi cela pourrait-il se produire?Java Code impossible de supprimer le fichier
Répondre
File.delete()
pouvez retourner false
si vous essayez de supprimer un répertoire qui n'est pas vide, ou le fichier nommé n'existe tout simplement pas au moment de l'appel.
(s'il y a un problème d'autorisation, une SecurityException est lancée)
Les raisons habituelles sont des autorisations suffisantes (même si normalement que jetterait une exception), en essayant de supprimer un fichier non-existant ou d'essayer de supprimer un répertoire non vide. Etes-vous totalement sûr que vous avez les autorisations pour supprimer le fichier que vous essayez de supprimer?
Certains processus peuvent lire/écrire le fichier, de sorte qu'il est verrouillé. Ou alors votre processus n'a pas les permissions pour supprimer le fichier. Si le fichier est un répertoire, tous les fichiers qu'il contient doivent être supprimés avant que le répertoire ne puisse être supprimé. Et enfin il y a la situation que le fichier n'existe pas, donc la méthode delete retournera false.
Windows? Utilisez le Process Explorer pour rechercher tous les processus qui conservent un descripteur (verrou) sur le fichier (ou s'il s'agit d'un répertoire sur n'importe quel fichier à l'intérieur). Pour Linux, utilisez fuser
.
Les fichiers ouverts sur Linux n'empêcheront pas le fichier d'être dissocié. – sarnold
Vous pouvez également verrouiller des fichiers sous Linux, mais cela est rarement utilisé. En outre, les montages NFS peuvent empêcher la suppression de fichiers. –
File.delete()
peut ne pas supprimer un fichier pour de nombreuses raisons, notamment:
- vous ne disposez pas des autorisations correctes pour supprimer le fichier
- le fichier représente un répertoire et le répertoire est pas vide
- le fichier est verrouillé par un autre processus, (ou même par le même processus en dire un non fermé
FileOutputStream
) - le fichier n'existe pas
+1 N'a pas rencontré de FOS non fermé, cependant :-) –
@Araon Digulla: un fichier non fermé ne pose problème que sur certains systèmes d'exploitation, tels que Windows. Sur les systèmes avec la sémantique du système de fichiers Posix, un fichier peut toujours être dissocié même s'il est ouvert par quelque chose d'autre. –
Un couple plus de possibilités sont 1) que le fichier est sur un périphérique qui a été monté en lecture seule, ou 2) vous avez eu la malchance de frapper une erreur d'E/S disque. (Ni sont le cas ici, mais par souci d'exhaustivité ...) –
Vous essayez peut-être de supprimer un fichier existant dans C: Drive et vous ne disposez peut-être pas des autorisations nécessaires pour le faire. Essayez de le mettre dans un autre lecteur que C: puis exécutez votre code. J'espère que ça marche pour toi. :)
J'ai eu le même problème dans mon code et trouvé que le coupable était en fait un FileInputStream non fermé. Après avoir fermé ce FIS mon fichier supprimé sans aucun problème. J'espère que ça aidera quelqu'un.
- 1. impossible de supprimer le répertoire via Java
- 2. C# Impossible de supprimer le fichier - System.UnauthorizedAccessException
- 3. Impossible d'ouvrir le fichier JAR spécifique dans le code Java
- 4. Impossible de supprimer le fichier XML
- 5. Impossible de supprimer le fichier JAR du cache
- 6. supprimer le code en double dans java
- 7. Impossible de supprimer le fichier Zip créé par SharpZipLib (FastZip)
- 8. Impossible de supprimer le répertoire
- 9. Supprimer le contenu d'un fichier en Java
- 10. Impossible de supprimer Settings.bundle
- 11. Impossible de supprimer le fichier par programme dans asp.net
- 12. Impossible d'accéder au fichier Java créé - parfois
- 13. Impossible de supprimer un fichier après l'avoir lu
- 14. comment supprimer automatiquement le fichier de classe relative une fois supprimer un fichier source java?
- 15. Impossible de supprimer le nœud dans Nokogiri
- 16. Impossible d'importer le fichier de classe java intégré (javax.naming.ldap.SortControl)
- 17. quitter le fichier de commandes en utilisant le code java
- 18. iPhone/Objectif C: Impossible de supprimer un fichier
- 19. Impossible de supprimer le bac de recyclage lorsque le code de svn s'y trouve
- 20. impossible de renommer ou supprimer des instances de fichier
- 21. Comment supprimer le fichier "-" de svn?
- 22. TFS: impossible de renommer le fichier supprimé
- 23. java: impossible de résoudre le symbole
- 24. Comment supprimer l'analyse de code sur le code généré?
- 25. impossible de supprimer uniquement le premier d'une série d'objets
- 26. Comment supprimer uniquement le contenu d'un fichier java?
- 27. Jar nom de fichier formulaire java code
- 28. Erreur Java: impossible de trouver le symbole?
- 29. Supprimer fichier d'accès aléatoire en java
- 30. Impossible de supprimer des annotations
Quel utilisateur est java en cours d'exécution? Cet utilisateur a-t-il eu besoin de droits pour supprimer le fichier? Exécutez-vous une application ou une applet? – andcoz