按层级打印文件夹
按层级打印文件夹
问题描述:
,把文件夹中的所有文件以及文件夹的名字按层级打印
例如:
aaa是文件夹,里面有bbb.txt,ccc.txt,ddd.txt这些文件,有eee这样的文件夹,eee中有fffff.txt和ggg.txt,打印出层级来
aaa
bbb.txt
ccc.txt
ddd.txt
eee
fffff.txt
ggg.txt
参考答案:
import java.io.File;
public class Test10 {
public static void main(String[] args) {
printDir(new File("E:/abc"), 0);
}
private static void printDir(File f, int level) {
for (int i = 0; i < level; i++) {
System.out.print("\t");
}
System.out.println(f.getName());
if (f.isDirectory()) {
File[] files = f.listFiles();
for (File file : files) {
printDir(file, level + 1);
}
}
}
}
/*
打印结果:
abc
123
2018年全国青少年禁毒知识竞赛题库.pdf
code
demo01
Demo03.java
Demo04.java
Demo01.java
Demo02.java
file03.txt
HelloWorld.java
IT书籍
C从入门到放弃.pdf
Java从入门到精通.pdf
哈利波特.txt
数学之美.PDF
数学之美.PDF1
朝花夕拾.txt
流浪地球.avi
百年孤独.txt
*/
自己瞎敲的代码:
package com.test.Test02;
import java.io.File;
import java.util.ArrayList;
public class Test09 {
public static void main(String[] args) {
printFiles(new File("E:/abc"));
}
private static void printFiles(File dir) {
ArrayList<File> f =new ArrayList<>();
ArrayList<File> d = new ArrayList<>();
if(dir.isDirectory()){
File[] files = dir.listFiles();
for (File file : files) {
if(file.isFile()){
f.add(file);
}else {
d.add(file);
printFiles(file);
}
}
System.out.println(dir.getName()+"是文件夹,里面有文件:"+f+";\r\n文件夹:"+d);
}else {
System.out.println(dir.getName()+"是文件");
}
}
}
/*
123是文件夹,里面有文件:[];
文件夹:[]
demo01是文件夹,里面有文件:[E:\abc\code\demo01\Demo03.java, E:\abc\code\demo01\Demo04.java];
文件夹:[]
code是文件夹,里面有文件:[E:\abc\code\Demo01.java, E:\abc\code\Demo02.java];
文件夹:[E:\abc\code\demo01]
IT书籍是文件夹,里面有文件:[E:\abc\IT书籍\C从入门到放弃.pdf, E:\abc\IT书籍\Java从入门到精通.pdf];
文件夹:[]
数学之美.PDF1是文件夹,里面有文件:[];
文件夹:[]
abc是文件夹,里面有文件:[E:\abc\2018年全国青少年禁毒知识竞赛题库.pdf, E:\abc\file03.txt, E:\abc\HelloWorld.java, E:\abc\哈利波特.txt, E:\abc\数学之美.PDF, E:\abc\朝花夕拾.txt, E:\abc\流浪地球.avi, E:\abc\百年孤独.txt];
文件夹:[E:\abc\123, E:\abc\code, E:\abc\IT书籍, E:\abc\数学之美.PDF1]
*/
唯有努力,人生没有白走的路,每一步都算数

浙公网安备 33010602011771号