在很多项目的开发文档上面我们都能看到很漂亮的目录树。
如果纯手敲的话那得需要很久,可能还不标准。
最近还是在写机器人框架,涉及到插件开发部分的说明,需要向用户展示插件的结构。
手敲目录树太麻烦了,于是我搞了个工具类:

package com.chaizhou;

/**
 * @Author zF.
 * @ClassName ProjectStructureGenerator.java
 * @ProjectName NewBot-FrameWork
 * @Description 项目结构生成器
 */
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class ProjectStructureGenerator {

    public static void main(String[] args) {
        File rootDir = new File("src");

        try {
            FileWriter writer = new FileWriter("project_structure.txt");
            generateProjectStructure(rootDir, writer, 0);
            writer.close();
            System.out.println("Project structure file created successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void generateProjectStructure(File dir, FileWriter writer, int level) throws IOException {
        if (dir.isDirectory()) {
            File[] files = dir.listFiles();
            if (files != null) {
                for (int i = 0; i < files.length; i++) {
                    File file = files[i];
                    String prefix = (i == files.length - 1) ? "└── " : "├── ";
                    writer.write(getIndentation(level) + prefix + file.getName() + "\n");

                    if (file.isDirectory()) {
                        generateProjectStructure(file, writer, level + 1);
                    }
                }
            }
        }
    }


    private static String getIndentation(int level) {
        StringBuilder indentation = new StringBuilder();
        for (int i = 0; i < level; i++) {
            indentation.append("    ");
        }
        return indentation.toString();
    }
}

使用方法,直接把上面的工具类放在项目的java文件夹下面,然后运行main方法即可。
文件会生成在项目根目录下,效果:

└── main
    ├── java
        └── com
            └── chaizhou
                ├── event
                    ├── EventAbstract.java
                    └── RequestResultVO.java
                ├── plugin
                    ├── PluginStatus.java
                    └── QueryPhonePlugin.java
    └── resources

怎么样?是不是很标准?

最后修改:2024 年 10 月 10 日
给我一点小钱钱也很高兴啦!o(* ̄▽ ̄*)ブ