删除指定路径下的文件
项目开发中常见的一个需求:删除指定目录下的文件
首先需要明确一点:
- new File().delete() 方法只能删除文件或者空目录。如果你的目录有多个文件,直接用 delete()将会删除失败。
这个时候就需要循环遍历一个个删除文件。此时你将会遇见一个新的问题,目录里除了文件还有还有子目录,这时代码该如何写呢?
使用递归的方式完成指定路径下的文件删除,如下所示:
public class FileDelete {
public static void main(String[] args) {
String path = "/Users/yang/Desktop/test";
fileDelete(new File(path));
}
public static void fileDelete(File file) {
//判断文件存在,进行删除操作
if (file.exists()) {
File[] files = file.listFiles();
if (files != null) {
for (File subFile : files) {
if (subFile.isDirectory()){
//继续遍历目录下的文件
fileDelete(subFile);
}else {
//删除文件
subFile.delete();
}
}
}
//空目录直接删除
file.delete();
}
}