欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java删除目录及目录下所有文件、文件夹(非递归)

程序员文章站 2022-05-14 22:57:05
...
public static void deleteFiles(File srcFile) {

    if (srcFile.exists()) {

        //存放文件夹
        LinkedList<File> directoryList = new LinkedList<>();
        ArrayList<File> directories = new ArrayList<>();

        File[] files;
        File directory;

        if (srcFile.isDirectory()) {
            directoryList.add(srcFile);
        } else {
            srcFile.delete();
        }

        while (!directoryList.isEmpty()) {

            directory = directoryList.removeFirst();//取出第一个directoryList集合中的文件夹
            directories.add(directory); //把取出的文件夹放到directories集合中
            files = directory.listFiles();

            if (files != null) {
                for (File f : files) {
                    if (f.isDirectory()) {
                        directoryList.add(f);
                    } else {
                        f.delete();
                    }
                }
            }
        }

        //这时所有非文件夹都删光了,可以直接删文件夹了(注意从后往前遍历)
        for (int j = directories.size() - 1; j >= 0; j--) {
            directories.get(j).delete();
        }

    }

}
相关标签: Java