gpt4 book ai didi

java - 如何以编程方式获取资源目录路径

转载 作者:IT老高 更新时间:2023-10-28 13:01:43 24 4
gpt4 key购买 nike

我有以下目录布局:

  • src
    • main
      • java
      • resources
        • sql (scripts for database)
        • spring (configuration)
      • webapp

在 ServletContextListener 类中,我想访问 SQL 目录下的文件并列出它们。基本上我的问题在于路径,因为我知道简而言之,列出目录下的文件是:

File folder = new File(path);
File[] listOfFiles = folder.listFiles();

也许我可以使用 ServletContextEvent 对象来尝试构建到 resources/sql

的路径
public void contextInitialized(ServletContextEvent event) {
event.getServletContext(); //(getRealPath etc.)
}

是否存在以相对、非硬编码的方式设置该路径的东西?像 new File("classpath:sql") 之类的东西(如果可能的话最好是 spring)或者我应该用 servletContext 做什么来指向 resources/sql

最佳答案

我假设 src/main/resources/ 的内容在构建时被复制到您的 .war 中的 WEB-INF/classes/ 中。如果是这种情况,您可以这样做(用实际值替换类名和正在加载的路径)。

URL sqlScriptUrl = MyServletContextListener.class
.getClassLoader().getResource("sql/script.sql");

关于java - 如何以编程方式获取资源目录路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19414453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com