如何使用递归删除Java中的目录/文件夹
时间:2020-02-23 14:34:26 来源:igfitidea点击:
之前我们学习了如何在Java中创建文件以及如何在Java中删除文件。
其中我们将学习如何递归地删除Java中的非空目录/文件夹。
Java删除目录
Java Filedelete()
方法删除一个文件或者一个空目录。
但是,如果目录不为空,则不会将其删除并返回false。
我们将递归使用delete()函数在Java程序中删除目录/文件夹。
package com.theitroad.files; import java.io.File; /** * This utility class can be used to delete * folders recursively in java * @author hyman */ public class DeleteFolderRecursively { public static void main(String[] args) { String folder = "/Users/hyman/tmp"; //delete folder recursively recursiveDelete(new File(folder)); } public static void recursiveDelete(File file) { //to end the recursive loop if (!file.exists()) return; //if directory, go inside and call recursively if (file.isDirectory()) { for (File f : file.listFiles()) { //call recursively recursiveDelete(f); } } //call delete to delete files and empty directory file.delete(); System.out.println("Deleted file/folder: "+file.getAbsolutePath()); } }
其中我们使用delete()删除文件夹内容,如果它是目录,我们将递归调用recursiveDelete
方法。
这是上述程序删除目录的输出。
Deleted file/folder: /Users/hyman/tmp/.DS_Store Deleted file/folder: /Users/hyman/tmp/data/data.dat Deleted file/folder: /Users/hyman/tmp/data/data.sql Deleted file/folder: /Users/hyman/tmp/data Deleted file/folder: /Users/hyman/tmp/DB.xml Deleted file/folder: /Users/hyman/tmp/item.xsd Deleted file/folder: /Users/hyman/tmp/ms/data.txt Deleted file/folder: /Users/hyman/tmp/ms/project.doc Deleted file/folder: /Users/hyman/tmp/ms Deleted file/folder: /Users/hyman/tmp