首页 > 编程语言 >如何获得 java项目下面所有的文件名

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

时间:2023-06-29 15:32:57浏览次数:53  
标签:下面 java String 文件名 currentFile fileNames 获取 File


 要获取 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);
        }
    }
}

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

如何获得 java项目下面所有的文件名_类加载器_02

2.打印所有文件名:

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

如何获得 java项目下面所有的文件名_类加载器_03

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

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

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


标签:下面,java,String,文件名,currentFile,fileNames,获取,File
From: https://blog.51cto.com/u_15975228/6583111

相关文章

  • 利用JAVA的AOP运行时注解实现请求VO的复杂组装
    背景上一篇介绍了关于JAVA的AOP编译时注解的开发经验,因此,这里则接着来讲讲AOP运行时注解,摘取的是利用运行时注解实现微服务对请求对象(VO)中的指定字段特殊处理的统一封装,典型场景就是SpringCloudGateway对用户请求经过鉴权、过滤、路由等处理之后,将必要信息添加到消息头中,转发到相......
  • 获得所有的class文件名,该怎么做
    ​ 要获取Java项目中所有类名,可以通过以下步骤实现:使用反射获取项目中所有的类:   //获得所有的class文件名publicclassgetclassfilename{//这是一个main方法,是程序的入口:publicstaticvoidmain(String[]args){List<String>className......
  • 获得所有的class文件名,该怎么做
    ​ 要获取Java项目中所有类名,可以通过以下步骤实现:使用反射获取项目中所有的类:   //获得所有的class文件名publicclassgetclassfilename{//这是一个main方法,是程序的入口:publicstaticvoidmain(String[]args){List<String>className......
  • 如何获得 java项目下面所有的文件名
    ​ 要获取Java项目中所有的文件名,可以通过以下步骤实现:使用递归遍历获取项目中所有的文件://获得所有的文件名publicclassgetfilename{//这是一个main方法,是程序的入口:publicstaticvoidmain(String[]args){List<String>fileNames=newA......
  • 【后端面经-Java】公平锁和加锁流程
    目录1.公平锁和非公平锁1.1基本概念1.2ReentrantLock的公平锁和非公平锁2.加锁流程2.1ReentrantLock和AQS的关系2.2公平锁-加锁流程2.3非公平锁-加锁流程2.4加锁流程和性能的关系3.面试问题模拟参考文献1.公平锁和非公平锁1.1基本概念公平锁:线程按照到来的先后......
  • JavaScript 格式化时间
    functionformatDate(date){/***格式化日期*@param{Date|String}date日期或日期字符串*/function_isString(val){returnObject.prototype.toString.call(val)==='[objectString]';}/***精确判断数据是否是Date类型*@param......
  • 一条从Java基础到Java开发各个方向的学习路线(书籍)
    一条从Java基础到Java开发各个方向的学习路线,按照难度递增的顺序排列:Java基础:《Java核心技术卷一》-CayS.Horstmann和GaryCornell《HeadFirstJava》-KathySierra和BertBatesJavaWeb开发:《HeadFirstServletsandJSP》-BryanBasham等《JavaWeb开发......
  • Java 中 BigDecimal 类型的变量的使用
    BigDecimal类的作用:Java的BigDecimal类用于进行高精度的十进制运算,避免了使用浮点数造成的精度丢失问题。 BigDecimal提供了许多方法来执行基本的数学运算,如加减乘除、比较、区域等。 BigDecimal类的常见用法示例:1、创建BigDecimal对象:BigDecimalnumber=......
  • Java 17 新特性
    如题:基于垃圾回收器的内存分配:Java17引入了垃圾回收器接口,允许开发人员实现自定义的垃圾回收器。这样可以提供更大的灵活性和性能优化的机会。  示例代码:1publicclassMyGarbageCollectorimplementsGarbageCollector{2//实现自定义的垃圾回收逻辑......
  • Java or Python?测试开发工程师如何选择合适的编程语言?
    很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对正确的选择确实要比盲目投入更明智也更高效。目前最常见的情况是纠结选择Jav......