在学习过程中,自己做的练习代码。
对于初学者来说,能把问题解决已经很高兴了,再加上还要继续学习新的内容,一般很少会再多想几个解决方法或者把代码再优化。因此,我有个想法,就是把自己写的代码发上来,让各位牛人诊断下是否可以再优化或者提供更优的解决方法,达到学习提高的目的。
/*
将一个路径下所有的文件或目录名打印到控制台,要求目录分级缩进。
*/
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());
}
}
}
}
|
|