递归的一些方法使用:深度遍历路径中的所有文件和目录,删除一个有文件的文件夹

package file;


import java.io.File;
/*递归练习
 * 1定义一个listALl方法
 * 2删除一个有文件的文件夹
 */


public class DiguiDemo {


public static void main(String[] args) {
// TODO 自动生成的方法存根
File file=new File("E:\\小说文学");
listAll(file, 0);
File files=new File("E:\\小说文学\\新建文件夹 (3)");
removedir( files);


}
//删除一个带有文件的文件夹
private static void removedir(File file) {
File[]f=file.listFiles();
for(File s:f){
//如果file中的文件是目录就递归
if(s.isDirectory())
removedir( file);
else
s.delete();
}
file.delete();

}
//自定义的listAll方法,遍历抽象路径中的所有文件和目录
private static void listAll(File file,int level) {
// 打印当前路径和递归时候得到的路径的绝对路径值
System.out.println(getSpace(level)+"dir:"+file.getAbsolutePath());
level++;
File[]f=file.listFiles();
for(int x=0;x<f.length;x++){
if(f[x].isDirectory()){
//System.out.println(getSpace(level)+f[x].getAbsolutePath());
listAll(f[x],level);}
else
System.out.println(getSpace(level)+f[x].getAbsolutePath());
}
}
//一个计数器,记录每遍历一次level就加一,方便阅览
private static String getSpace(int level) {
// TODO 自动生成的方法存根
StringBuilder s=new StringBuilder();
s.append(" |");
for(int x=0;x<level;x++)
s.insert(0, " ");
return s.toString();
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值