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