Après avoir énuméré un répertoire, je dois maintenant supprimer tous les fichiers.
J'ai utilisé :
final File[] files = outputFolder.listFiles();
files.delete();
Mais cela n'a pas supprimé le répertoire.
Après avoir énuméré un répertoire, je dois maintenant supprimer tous les fichiers.
J'ai utilisé :
final File[] files = outputFolder.listFiles();
files.delete();
Mais cela n'a pas supprimé le répertoire.
Vous devez faire cela pour chaque fichier :
public static void deleteFolder(File folder) {
File[] files = folder.listFiles();
if(files!=null) { //some JVMs return null for empty dirs
for(File f: files) {
if(f.isDirectory()) {
deleteFolder(f);
} else {
f.delete();
}
}
}
folder.delete();
}
Ensuite, appelez
deleteFolder(outputFolder);
+1. Cependant, la dernière ligne devrait être outputFolder.delete()
au lieu de output.delete()
.
Je l'ai essayé mais quand j'ouvre le navigateur, le dossier est toujours là et contient tous les fichiers...
Cela ne fonctionne pas si l'un des fichiers est un répertoire non vide. Vous devez supprimer le contenu du répertoire récursivement. if(f.isDirectory())myDelete(f)
Je suppose que vous voulez parler de la méthode commons-io : org.apache.commons.io.FileUtils.deleteDirectory(File)
On y est presque ! La question était de savoir comment supprimer le contenu du dossier (et non le filtre lui-même). Commons-io a également une méthode pour cela : FileUtils.cleanDirectory(File) ;
Existe-t-il un moyen similaire pour supprimer uniquement les fichiers contenus dans le dossier et non le dossier lui-même ?
On ne peut pas supprimer sur un tableau ! Ceci devrait mieux fonctionner :
for (File f : files) f.delete();
Mais cela ne fonctionnera pas si les dossiers ne sont pas vides. Dans ce cas, vous devrez descendre récursivement dans la hiérarchie des dossiers et tout supprimer. Oui, c'est dommage que Java ne puisse pas le faire par défaut...
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
34 votes
Est-ce que ça compile ? Vous appelez delete sur un tableau.