java - 如何删除文件夹及其子文件夹中的所有文件?

标签 java file directory delete-file

这是我的代码。但它只能删除当前文件夹中的txt文件,不能删除子文件夹。

import java2.org.apache.commons.io.filefilter.WildcardFileFilter;
    import java.io.*;
    public class DeleteSameType{
    public static void main(String []args){

        File dir = new File("user/document/test");
        FileFilter fileFilter = new WildcardFileFilter("*.txt");
        File[] files = dir.listFiles(fileFilter); 
        for(File f: files){
            f.delete();
        }

    }
}

enter image description here

最佳答案

File.delete() 不会删除非空目录。您需要创建一个递归函数来删除目录和子目录中的文件。

import java2.org.apache.commons.io.filefilter.WildcardFileFilter;
    import java.io.*;
    public class DeleteSameType{
    public static void main(String []args){

    DeleteSameType deleteSameType = new DeleteSameType();

        File dir = new File("user/document/test");

    deleteSameType.recursiveDelete(dir)        

    }

    private void recursiveDelete( File dir) {

    FileFilter fileFilter = new WildcardFileFilter("*.txt");
    if(dir.isDirectory()) {
        File[] files = dir.listFiles(fileFilter);
          for(File f: files){
                recursiveDelete(f);
        } 

        }
    dir.delete();
    }
}

关于java - 如何删除文件夹及其子文件夹中的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35256382/

相关文章:

c - 为什么“while(!feof(file))”总是错误的?

linux - 比较脚本帮助

java - "Cycle found"与 Spring Data Mongo 1.5

java - 向主 java 发送事件

python - 在python中对多行字符串进行分区

r - 如何在R中解析Windows目录地址?

python - 使用 Python 遍历目录

java - 超越 Java 中的 Integer.MAX_VALUE 约束

java - 新的日志行以单引号开头

文件句柄变量?