English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo esempio, impareremo a eliminare una directory vuota, una directory non vuota e una directory con sottodirectory non vuote in Java.
import java.io.File; class Main { public static void main(String[] args) { try { // crea un nuovo oggetto file File directory = new File("Directory"); // elimina la 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 sopra, abbiamo utilizzato il metodo delete() della classe File per eliminare il file di nomeDirectorydirectory.
In questo caso, se la directory esiste, viene visualizzato il messaggioLa directory è stata eliminata. Altrimenti, viene visualizzato " Directory not found.
Per ulteriori informazioni sui file, visitareJava File.
In Java, per eliminare una directory non vuota, dobbiamo prima eliminare tutti i file presenti nella directory. Poi possiamo eliminare la directory.
import java.io.File; class Main { public static void main(String[] args) { try { // crea un nuovo oggetto file File directory = new File("Directory"); // elenca tutti i file nell'array File[] files = directory.listFiles(); // elimina ogni file dalla directory for(File file : files) { System.out.println(file + " deleted."); file.delete(); } // elimina la directory if(directory.delete()) { System.out.println("Directory deleted"); } else { System.out.println("Directory not Found"); } } catch (Exception e) { e.getStackTrace(); } } }
Nell'esempio sopra, abbiamo utilizzato un ciclo for-each per eliminare tutti i file presenti nella directory. Una volta eliminati tutti i file, abbiamo utilizzato il metodo delete() per eliminare la directory.
import java.io.File; class Main { public static void deleteDirectory(File directory) { // il file è una directory if(directory.isDirectory()) { File[] files = directory.listFiles(); // se la directory contiene qualsiasi file if(files != null) { for(File file : files) { // se la sottodirectory non è vuota, effettua una chiamata ricorsiva deleteDirectory(file); } } } if(directory.delete()) { System.out.println(directory + " was deleted"); } else { System.out.println("Directory not deleted"); } } public static void main(String[] args) { try { // crea un nuovo oggetto file File directory = new File("Directory"); Main.deleteDirectory(directory); } catch (Exception e) { e.getStackTrace(); } } }
Supponiamo di avere un directory non vuota chiamata Directory. La Directory contiene 2 file chiamati file1.txt e file2.txt e una directory non vuota chiamata Subdirectory. Allo stesso modo, la Subdirectory contiene un file chiamato file11.txt.
Ora, quando eseguiamo il programma, otteniamo l'output seguente.
Directory\file1.txt è stata eliminata Directory\file2.txt è stata eliminata Directory\Subdirectory\file11.txt è stata eliminata Directory\Subdirectory è stata eliminata La directory è stata eliminata
Quindi, iniziamo a eliminare 2 file, quindi eliminare ricorsivamente i file all'interno della Subdirectory. Una volta che la Subdirectory è vuota, viene eliminata. Infine, viene eliminato il Directory.