Supprimer un dossier en Java

Dans ce tutoriel nous allons découvrir comment supprimer un dossier en Java.

Pour supprimer un dossier ou un répertoire, vous pouvez simplement utiliser File.delete(), mais le dossier doit être vide pour le supprimer.

Souvent, vous devrez peut-être effectuer une suppression récursive dans un dossier, ce qui signifie que tous ses sous-répertoires et fichiers doivent également être supprimés:
 
 

Exemple: Supprimer un dossier de manière récursive
import java.io.*;

public class Main
{	
    public static void delete(File f) throws IOException{
 
    	if(f.isDirectory()){
    	  //si le dossier est vide, supprimez-le
    	  if(f.list().length == 0){
    	    f.delete();
    	    System.out.println("Dossier est supprimé: "+ f.getAbsolutePath());
    	  }else{
    	    //lister le contenu du répertoire
    	    String files[] = f.list();
     
    	    for (String tmp : files) {
    	       File file = new File(f, tmp);
    	       //suppression récursive
    	       delete(file);
    	    }
    	    //vérifiez à nouveau le dossier, s'il est vide, supprimez-le
    	    if(f.list().length == 0){
    	    f.delete();
    	    System.out.println("Dossier est supprimé: "+ f.getAbsolutePath());
    	    }
    	    }
    	}else{
    	    //si il est un fichier, supprimez-le
    	    f.delete();
    	    System.out.println("Fichier est supprimé: " + f.getAbsolutePath());
    	}
    }

	public static void main(String[] args)
	{
		File dir = new File("C:\\test");
		try{
			delete(dir);
		}catch(IOException e){
			e.printStackTrace();
		}
	}
}

 
Sortie:
 

 

Partagez cet article

2 réflexions sur “Supprimer un dossier en Java

  • Avatar
    janvier 29, 2021 à 9:02
    Permalien

    i just run the proposed program and it runs real fine to delete Directoy and files in Directy wether blank or not.
    I called that directory: « C:\\Users\\alain\\Videos\\essaiEffacement2 »
    I added a file of the same name and address ;on a second run (or on first run if there is no Directory) this file should be deleted , which it is not.
    I really do not understand why. Could you be of some help ?
    Thank a lot

    Répondre
    • Thomas Clavet
      janvier 29, 2021 à 10:11
      Permalien

      If the first run worked fine, so why the second doesn’t work? Make sure that the directory exist and path is correct.

      Good luck.

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *