import java.io.File;
import java.util.ArrayDeque;
import java.util.Deque;
/**
* @author XueFeng
* create 2022/5/14 - 19:34 - 星期六
*/
public class DFile {
public static void deleteDirectory(File directory) {
if (!directory.exists())
return;
Deque<File> stack = new ArrayDeque<>();
Deque<File> directors = new ArrayDeque<>();
stack.push(directory);
while (!stack.isEmpty()) {
File file = stack.pop();
if (file.isFile()) {
file.delete();
continue;
}
directors.push(file);
File[] files = file.listFiles();
for (File value : files) {
if (value.isFile()) {
value.delete();
} else {
stack.push(value);
}
}
}
for (File file : directors) {
file.delete();
}
}
public static void main(String[] args) {
File file = new File("D:\\aa\\bb");
deleteDirectory(file);
}
}
删除文件的非递归算法
于 2022-05-14 21:04:02 首次发布