如何获得 java项目下面所有的文件名

发布时间 2023-06-29 15:23:05作者: Booker003

 要获取 Java 项目中所有的文件名,可以通过以下步骤实现:

  1. 使用递归遍历获取项目中所有的文件:

//获得所有的文件名
public class getfilename {
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
        List<String> fileNames = new ArrayList<>();
        try {
            // 获取当前类加载器
            ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            // 获取当前类加载器加载的所有资源的 URL
            URL url = classLoader.getResource("");
            // 如果是文件系统的路径
            if (url.getProtocol().equals("file")) {
                String basePath = URLDecoder.decode(url.getFile(), "UTF-8");
                File baseDir = new File(basePath);
                // 递归扫描文件夹中的所有文件
                scanFiles(fileNames, baseDir);
            }
            for (String fileName : fileNames) {
                System.out.println(fileName);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    // 递归扫描文件夹中的所有文件
    private static void scanFiles(List<String> fileNames, File currentFile) {
        if (currentFile.isDirectory()) {
            File[] files = currentFile.listFiles();
            if (files != null && files.length > 0) {
                for (File file : files) {
                    scanFiles(fileNames, file);
                }
            }
        } else if (currentFile.isFile()) {
            String filePath = currentFile.getAbsolutePath();
            fileNames.add(filePath);
        }
    }
}

2.打印所有文件名:

for (String fileName : fileNames) {
    System.out.println(fileName);
}

这样就能获取到 Java 项目中所有的文件名了。请注意,该方法仅适用于在文件是以文件系统形式存储的情况下,对于 JAR 文件中的文件是无法获取到的。另外,如果项目中有很多文件,可能会需要一定的时间来扫描和获取文件名。