黑马程序员技术交流社区

标题: 将所有文件名打印到控制台,学习交流 [打印本页]

作者: 梁志仲    时间: 2012-8-3 09:41
标题: 将所有文件名打印到控制台,学习交流
在学习过程中,自己做的练习代码。
对于初学者来说,能把问题解决已经很高兴了,再加上还要继续学习新的内容,一般很少会再多想几个解决方法或者把代码再优化。因此,我有个想法,就是把自己写的代码发上来,让各位牛人诊断下是否可以再优化或者提供更优的解决方法,达到学习提高的目的。


/*
将一个路径下所有的文件或目录名打印到控制台,要求目录分级缩进。
*/
import java.io.*;
class  Test
{
public static void main(String[] args) throws Exception
{
  File f = new File("d:\\java");  //要遍历打印的路径
  lists(f, 0);                    //将文件对象和顶层目录级别初始值值入遍历方法中
}


public static void lists(File f, int count) //count为控制目录级别的参数
{
  File[] files = f.listFiles();           //将路径下所有的File对象(文件和文件夹)存到File数组中
  int len = files.length;
  
  //遍历数组元素并打印
  for (int i=0; i<len; i++)
  {
   //判断是否是文件夹,如是,先打印文件夹,再调用本函数自身进行递归遍历该文件夹
   //如不是文件夹,则打印层级缩进后,打印文件名
   if(files[i].isDirectory())      
   {
    for(int j=0; j<count; j++)
     System.out.print("   ");
    System.out.println(count+"级目录"+":"+files[i].getName());
    count++;
    lists(files[i], count);
   }
   else
   {
    for(int j=0; j<count; j++)
     if(j==count-1)
      System.out.print("|--");
     else
      System.out.print("   ");
    System.out.println(files[i].getName());
   }
  }
}
}


打印文件名截图.jpg (28.45 KB, 下载次数: 8)

打印文件名运行截图

打印文件名运行截图





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