使用递归原理根据文件夹路径,删除文件夹
Posted 盛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用递归原理根据文件夹路径,删除文件夹相关的知识,希望对你有一定的参考价值。
在实际开发中往往会有删除某个目录的需求,而如果直接删除目录程序会报错,正确的删除方式应该是先删除该目录里的所有文件,再删除该目录。
本篇博文通过递归的方式将整个目录以及其中的文件夹全部删除,具体实例如以下代码所示:
package cn.itcast.snake; import java.io.File; public class Example { public static void main(String[] args) { //创建一个代表目录的file对象 File file = new File("F://sjk.txt"); //调用deleteDir删除方法 deleteDir(file); } public static void deleteDir(File dir) { //判断传入的File对象是否存在 if(dir.exists()) { //得到File数组 File[] files = dir.listFiles(); //遍历所有的子目录和文件 for(File file : files) { if(file.isDirectory()) { //如果是目录,递归调用deleteDir() deleteDir(file); } else { //如果是文件,直接删除 file.delete(); } } //删除完一个目录里的所有文件后,就删除这个目录 dir.delete(); } } }
需要注意是,在java删除目录是从虚拟机直接删除而不走回收站,文件将无法恢复,因此在进行删除操作的时需谨慎!
以上是关于使用递归原理根据文件夹路径,删除文件夹的主要内容,如果未能解决你的问题,请参考以下文章
JavaSE 文件递归之删除&获取文件夹文件夹中全部的以.jpg的文件的绝对路径
powershell 使用PowerShell以递归方式删除Windows中所有子文件夹中的`node_modules`文件夹,以避免超出路径max_length