如何在 Java 中打印目录的层次结构

问题描述

如何打印目录的层次结构?

解决方案

以下示例显示如何使用 File 类的 file.getName() 和 file.listFiles() 方法打印指定目录的层次结构。

import java.io.File;
import java.io.IOException;

public class FileUtil {
   public static void main(String[] a)throws IOException{
      showDir(1, new File("d:\Java"));
   }
   static void showDir(int indent, File file) throws IOException {
      for (int i = 0; i < indent; i++) System.out.print('-');
      System.out.println(file.getName());
      if (file.isDirectory()) {
         File[] files = file.listFiles();
         for (int i = 0; i < files.length; i++)showDir(indent + 4, files[i]);
      }
   }
}

结果

上述代码示例将产生以下结果。

-Java
-----codes
---------string.txt
---------array.txt
-----tutorial

以下是 Java 中目录层次结构的另一个示例

import java.io.File;
import java.io.IOException;

public class FileUtil {
   public static void main(String[] a)throws IOException { 
      showDir(1, new File("C:\Users\TutorialsPoint7\Desktop"));
   } 
   static void showDir(int indent, File file) throws IOException { 
      for (int i = 0; i < indent; i++)System.out.print('-'); 
      System.out.println(file.getName());
      
      if (file.isDirectory()) {
         File[] files = file.listFiles();
         for (int i = 0; i < files.length; i++)showDir(indent + 4, files[i]); 
      } 
   }
}

上述代码示例将产生以下结果。

-Desktop
-----abc.png
-----abc.txt
-----bbc.txt
-----Custom CSS.txt
-----desktop.ini
java_directories.html