如何打印目录层次结构?(How to print the directory hierarchy?)

优质
小牛编辑
125浏览
2023-12-01

问题描述 (Problem Description)

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

解决方案 (Solution)

下面的示例演示如何使用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 7lt; 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]);
      }
   }
}

结果 (Result)

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

-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\\xnip7\\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