Programma Java per eliminare directory vuote e non vuote

In questo esempio, impareremo a eliminare una directory vuota, una directory non vuota e una directory con una sottodirectory non vuota in Java.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:

  • Classe di file Java
  • Ricorsione Java

Esempio 1: programma Java per eliminare una directory vuota

 import java.io.File; class Main ( public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); // delete the directory boolean result = directory.delete(); if(result) ( System.out.println("Directory Deleted"); ) else ( System.out.println("Directory not Found"); ) ) catch (Exception e) ( e.getStackTrace(); ) ) )

Nell'esempio precedente, abbiamo utilizzato il delete()metodo della Fileclasse per eliminare la directory denominata Directory .

Qui, se la directory è presente, viene visualizzato il messaggio Directory eliminata . In caso contrario, viene visualizzato Directory non trovata .

Esempio 2: eliminare una directory non vuota

In Java, per eliminare una directory non vuota, dobbiamo prima eliminare tutti i file presenti nella directory. Quindi, possiamo eliminare la directory.

 import java.io.File; class Main ( public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); // list all the files in an array File() files = directory.listFiles(); // delete each file from the directory for(File file : files) ( System.out.println(file + " deleted."); file.delete(); ) // delete the directory if(directory.delete()) ( System.out.println("Directory Deleted"); ) else ( System.out.println("Directory not Found"); ) ) catch (Exception e) ( e.getStackTrace(); ) ) )

Nell'esempio precedente, abbiamo utilizzato il for-eachciclo per eliminare tutti i file presenti nella directory. Una volta che tutti i file vengono eliminati, abbiamo utilizzato il delete()metodo per eliminare la directory.

Esempio 3: eliminare la directory non vuota in modo ricorsivo

 import java.io.File; class Main ( public static void deleteDirectory(File directory) ( // if the file is directory or not if(directory.isDirectory()) ( File() files = directory.listFiles(); // if the directory contains any file if(files != null) ( for(File file : files) ( // recursive call if the subdirectory is non-empty deleteDirectory(file); ) ) ) if(directory.delete()) ( System.out.println(directory + " is deleted"); ) else ( System.out.println("Directory not deleted"); ) ) public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); Main.deleteDirectory(directory); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Supponiamo di avere una directory non vuota denominata Directory. La directory contiene 2 file denominati file1.txt e file2.txt e una sottodirectory non vuota denominata Sottodirectory. Anche in questo caso, la sottodirectory contiene un file denominato file11.txt.

Ora, quando eseguiamo il programma, otterremo il seguente output.

 Directory file1.txt viene eliminato Directory file2.txt viene eliminato Directory Sottodirectory file11.txt viene eliminato Directory Sottodirectory viene eliminato La directory viene eliminata

Qui, i primi 2 file vengono eliminati, quindi la funzione ricorsiva elimina i file all'interno della sottodirectory. Una volta che la sottodirectory è vuota, viene eliminata. E, infine, la directory viene eliminata.

Articoli interessanti...