使用File类遍历本地目录

       自己动手,丰衣足食。我发现必须得时常的亲手敲下代码 ,毕竟有些东西,时间一长就忘了,尤其是代码这种要求一丝不苟的事情。今天在看权力的游戏第八季的第四集之前,编写好了这个遍历文件目录的代码。看上去很简单,但是还是需要动下脑子。ps:权力的游戏是真的好看!

 说下注意的几个点:

  •  这里把level变量设置为函数的参数而不是成员变量,否则每往上一次就得减1,每往下一层就得加1,处理很麻烦。所以有时候巧妙的设计参数可以省去很多复杂的问题
  • 这里注意不要使用返回字符串的那个list函数。因为最后调用函数所需的参数 是File类型,还需要new File(),而且返回的文件名的字符串类型并不是绝对路径,根本不能创建出符合要求的File对象
import java.io.File;


public class PrintDirectory{
//遍历目录
	public static void main(String args[]) {
		File file = new File("F:\\haha");
//  遍历的是F盘下haha文件夹下的文件结构
		printTree(file,0);
	}
	static void printTree(File file,int level) {
//  level参数可直观的看出目录结构
		String pref = "";
		String pred = "";
		for(int i=0;i<level;i++) {
			pref += "-";
			pred += "+";
		}
//		控制输出格式,能够很好的区分文件目录的层次
//		这里把level变量设置为函数的参数而不是成员变量,
//		否则每往上一次就得减1,每往下一层就得加1,处理很麻烦
//		所以有时候巧妙的设计参数可以省去很多复杂的问题
		if(file.isFile())
			System.out.println(pref+file.getName());
		else{
			System.out.println(pred+file.getName());
			File childs[] = file.listFiles();
//			这里注意不要使用返回字符串的那个list函数。因为最后调用函数所需的参数
//			是File类型,还需要new File(),而且返回的文件名的字符串类型并不是绝对路径,
//			根本不能创建File对象
			for(File f : childs)
				printTree(f,level+1);
		}
	}

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值