Discuss / Java / 练习:请利用File对象列出指定目录下的所有子目录和文件,并按层次打印

练习:请利用File对象列出指定目录下的所有子目录和文件,并按层次打印

Topic source

韦雪松

#1 Created at ... [Delete] [Delete and Lock User]
import java.io.File;


public class FileDemo {

    public static final String SPACE = " ";

    public static void main(String[] args) {
        File pathname = new File("F:\\IdeaProjects\\JavaSE");
        listDir(pathname, 0);
    }

    /**
     * 递归打印所有文件和子文件夹的内容
     * @param pathname File object
     * @param count    int
     */
    public static void listDir(File pathname, int count) {
        File[] files = pathname.listFiles();
        if (files != null) {
            for (File file : files) {
                // 显示目录层次所需空格
                StringBuilder sb = new StringBuilder();

                for (int i = 0; i < count; i++) {
                    sb.append(SPACE);
                }

                String prefix = sb.toString();

                if (file.isDirectory()) {
                    System.out.println(prefix + file.getName() + "\\");
                    listDir(file, count + 2);
                } else {
                    System.out.println(prefix + file.getName());
                }
            }
        }
    }
}

  • 1

Reply