A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jant60 中级黑马   /  2015-1-8 13:49  /  729 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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){
复制代码




1 个回复

倒序浏览
不好意思啊,忘了注释了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马