* 从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印, 例下图:
* 把文件夹中的所有文件以及文件夹的名字按层级打印
* 分析:
* 1,获取所有文件和文件夹,返回的File数组
* 2,遍历数组
* 3,无论是文件还是文件夹,都需要直接打印
* 4,如果是文件夹,递归调用
/**
* function: 从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印, 例如:
* 把文件夹中的所有文件以及文件夹的名字按层级打印
* 分析:
* 1,获取所有文件和文件夹,返回的File数组
* 2,遍历数组
* 3,无论是文件还是文件夹,都需要直接打印
* 4,如果是文件夹,递归调用
* author:wangpeng
* time:2018年8月15日上午9:48:00
*/
@Test
public void test1() {
File file=judge();
putDigui(0,file);
}
public File judge() {
Scanner in = new Scanner(System.in);
File file = null;
String strPath = null;
System.out.print("请输入一个文件夹路径(如F:\\a):");
while (true) {
strPath = in.next();
file = new File(strPath);
if (file.exists())
break;
else
System.out.println("文件夹不存在,重新输入(如F:\\a):");
}
return file;
}
public void putLev(int lev) {
for(int i=0;i<lev;i++) {
System.out.print("——>");
}
}
public void putDigui(int lev,File file) {
putLev(lev);
System.out.println(file.getName());
lev++;
if (file.isDirectory()) {
File[] fi=file.listFiles();
for(File f:fi) {
putDigui(lev,f);
}
}
}