1 package com.freud.algorithm.other;
2
3 import java.io.File;
4
5 public class FileDemo {
6
7 public static void main(String[] args) {
8 File dir = new File("F:\\2020\\");
9 //File dir=new File("F:\\");
10 //如果使用上述的盘符的根目录,会出现java.lang.NullPointerException
11 //为什么?
12 getAllFiles(dir, 0);//0表示最顶层
13 }
14
15 /**
16 * 获取层级的方法
17 *
18 * @param level
19 * @return
20 */
21 public static String getLevel(int level) {
22
23 StringBuilder stringBuilder = new StringBuilder();
24 for (int l = 0; l < level; l++) {
25 stringBuilder.append("|--");
26 }
27 return stringBuilder.toString();
28 }
29
30 public static void getAllFiles(File dir, int level) {
31
32 System.out.println(getLevel(level) + dir.getName());
33 level++;
34 File[] files = dir.listFiles();
35 for (int i = 0; i < files.length; i++) {
36 if (files[i].isDirectory()) {
37 // 这里面用了递归的算法
38 getAllFiles(files[i], level);
39 } else {
40 System.out.println(getLevel(level) + files[i]);
41 }
42 }
43 }
44 }