示例1: Java程序删除空目录
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(); } } }
在上面的例子中,我们使用了
File
类的
delete()
方法来删除名为Directory的目录。
此处,如果目录存在,则会显示消息目录已删除。否则,将显示未找到目录。
示例 2: 删除一个非空目录
在 Java 中,要删除一个非空目录,我们必须首先删除该目录中存在的所有文件。然后,我们可以删除目录。
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(); } } }
在上面的例子中,我们使用了
for-each
循环来删除目录中存在的所有文件。一旦删除所有文件,我们使用
delete()
方法删除目录。
示例3: 递归删除非空目录
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(); } } }
这里,假设我们有一个名为
Directory 的非空目录。
Directory 包含 2 个名为
file1.txt 和
file2.txt 的文件和一个名为
Subdirectory 的非空子目录。同样,
Subdirectory 包含一个名为
file11.txt 的文件。
现在,当我们运行程序时,我们将得到以下输出。
Directory\file1.txt is deleted Directory\file2.txt is deleted Directory\Subdirectory\file11.txt is deleted Directory\Subdirectory is deleted Directory is deleted
这里先删除2个文件,然后递归函数删除
子目录中的文件。一旦
Subdirectory 为空,它就会被删除。最后,
Directory 被删除。