java代码:下列代码的作用是什么?请简述,面试题
class Test12{
public static void main(String[] args) {
showDirectory(new File("/Users/Hao/Downloads"));
}
public static void showDirectory(File f) {
_walkDirectory(f,0);
}
private static void _walkDirectory(File f,int level) {
if(f.isDirectory()) {
for(File temp:f.listFiles()) {
_walkDirectory(temp,level+1);
}
}eles{
for(int i=0;i<level-1;i++) {
System.out.println("\t");
}
System.out.println(f.getName());
}
}
} 展开
该程序的作用:进到指定目录,输出这个目录以及子目录下所有文件的文件名,通过\t的行数来区别层级。
为了测试,我建立了这么一些文件:
D:\test
D:\test\test1
D:\test\test2
D:\test\test3.txt
D:\test\test1\t1.txt
D:\test\test1\t2.txt
D:\test\test2\t3.txt
其中,根路径为D:\test,其level为0;
level1中包含文件夹test1、文件夹test2和文件test3;
level2中包含文件t1.txt(属于文件夹test1)、文件t2.txt(属于文件夹test1)、文件t3.txt(属于文件夹test2)。
则该程序的输出为:
其中:
t1.txt前有1行\t,说明t1.txt位于第2层级
t2.txt前有1行\t,说明t2.txt位于第2层级
t3.txt前有1行\t,说明t3.txt位于第2层级
test3.txt前没有\t,说明test3.txt位于第1层级
符合预期。
另外为了再明显一些,我给输出再加点东西,这样会不会更明显一些:
其中,t1.txt位于的大括号中有一行\t和它的名字,表明了它确实在第2层级中,t2、t3同t1;test3.txt位于的大括号中只有它的名字表明了它确实在第1层级中