黑马程序员技术交流社区
标题:
目录层级打印问题,求解???
[打印本页]
作者:
StringBOX
时间:
2016-1-24 17:11
标题:
目录层级打印问题,求解???
从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印, 例如:
aaa是文件夹,里面有bbb.txt,ccc.txt,ddd.txt这些文件,有eee这样的文件夹,eee中有fff.txt和ggg.txt,打印出层级来
aaa
bbb.txt
ccc.txt
ddd.txt
eee
fff.txt
ggg.txt
作者:
StringBOX
时间:
2016-1-24 17:28
已解决。。。。
作者:
StringBOX
时间:
2016-1-24 18:25
public static void main(String[] args) {
print(inDir(),0);
}
/*
* 键盘录入方法
* 返回值类型:File
* 参数:无
*/
public static File inDir() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件夹路径:");
while(true) {
File dir = new File(sc.nextLine());
if(!dir.exists()) {
System.out.println("你输入的不是文件夹路径,请输入文件夹路径:");
} else if(dir.isFile()) {
System.out.println("你输入的是文件路径,请输入文件夹路径:");
} else {
return dir;
}
}
}
/*
* 打印文件方法
* 返回值类型:void
* 参数:File
*/
public static void print(File dir,int t) {
for(int i = 0; i < t; i++) {
System.out.print(" "); //t可规定插入几个空格
}
System.out.println(dir.getName()); //输入文件名
if(dir.isDirectory()) { //若是文件夹
File[] arrDir = dir.listFiles(); //列出存如数组
for (File file : arrDir) { //遍历
print(file,t +4); //递归调用
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2