黑马程序员技术交流社区

标题: 今天学习完io做的 [打印本页]

作者: jant60    时间: 2015-1-8 13:49
标题: 今天学习完io做的
本帖最后由 jant60 于 2015-1-8 14:16 编辑

今天学完io做的,,分享给大家,希望能给出优化的意见,谢谢
不好意思忘了注释,和思路了现在补上:
其实打印指定的文件夹目录很简单的。
java提供了file类 以指定目录实例化之后,可以通过list()方法获取到所有此目录下所有文件及文件夹,如果实例化时候给出的目录不是目录那么list()返回null
利用这两点就可以完成对指定目录的遍历了。
但是目录下还有目录我们就需要递归的进行遍历,这就是大概思路

代码中可能有很多不足之处,或者错误,请大家帮助指导一下


  1. import java.io.File;



  2. public class IoTree {

  3.     public static void main(String[] args)  {
  4.                      show("D:\\b",0);

  5.                
  6.                
  7.         }

  8.         public static void show(String path,int lev) {//path是传入的路径,lev是第几次递归也就是第几级目录,以便后面格式化输出
  9.                 File f=new File(path);
  10.                 String[] name=f.list();
  11.                 for (int i = 0; i < name.length; i++) {
  12.                         if(new File(path+"\\"+name[i]).list()==null){//如果传进来的不是一个目录
  13.                                 System.out.println(strcopy(lev)+"--"+name[i]);//那么输出信息
  14.                         }else{
  15.                                 show(path+"\\"+name[i],++lev);//如果是一个目录,那么就继续递归
  16.                         }
  17.                         
  18.                 }
  19.         }
  20.         public static String strcopy(int i){
复制代码





作者: jant60    时间: 2015-1-8 14:04
不好意思啊,忘了注释了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2