File类——递归删除多级文件夹及文件
程序员文章站
2022-07-09 22:34:32
...
实现删除某个目录删除及该目录里面所有的子文件和文件夹的功能
整体思路:
- 文件存在
是文件 --直接调用delete删除
是文件夹--接收文件夹下file实例并遍历
调用自身递归判断
删除空文件夹
import java.io.File;
/**
* @author Administrator
*/
public class DiGuiTest
{
public static void main(String[] args)
{
File file = new File("F://test");
deletAllFiles(file);
}
/**
*递归删除文件目录及文件
* @param file
*/
public static void deletAllFiles(File file)
{
if (file == null)
{
return;
}
//文件目录存在?(包括文件及文件夹)
if (file.exists())
{
//是文件?
if (file.isFile())
{
System.out.println(file.getAbsolutePath());
file.delete();
}
//是文件夹?
else if (file.isDirectory())
{
//接收文件夹目录下所有的文件实例
File[] listFiles = file.listFiles();
//文件夹为空 递归出口
if (listFiles == null)
{
return;
}
for (File file2 : listFiles)
{
//foreach遍历删除文件 递归
deletAllFiles(file2);
System.out.println("正在删除文件夹 " + file.getAbsolutePath());
}
//递归跳出来的时候删除空文件夹
System.out.println("正在删除文件夹" + file.getAbsolutePath());
file.delete();
}
}
}
}