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

通过使用Java编程语言,可以递归遍历项目文件系统来获取所有文件名。这段代码首先获取类加载器的资源URL,然后遍历文件夹,对每个文件或子文件夹进行递归操作,将文件名添加到列表中。最后,打印出所有文件名。注意,这种方法不适用于JAR文件内的文件。
摘要由CSDN通过智能技术生成

 要获取 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 文件中的文件是无法获取到的。另外,如果项目中有很多文件,可能会需要一定的时间来扫描和获取文件名。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值