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();
}
}
}