簡體   English   中英

使用 Spring 引導讀取 class 路徑資源中目錄的子目錄

[英]Reading sub-directories of a directory in class path resources with Spring Boot

我試圖使用 Spring 引導讀取我的 class 路徑資源中目錄的子目錄(目錄名稱),代碼片段如下。

    public List<File> getSubdirectories() {
    File file = ResourceUtils.getFile("classpath:/database/scripts");
    return Arrays.stream(file.listFiles()).filter(File::isDirectory).map(File::getFileName)
            .collect(Collectors.toList());
    }

現在,當我們從 IDE 運行此代碼時,這將運行良好。 但是,當我們將這個應用程序構建為 jar 並從那里運行它時,它會拋出FileNotFoundException

我也嘗試將目錄加載為 class 路徑資源。 但沒有找到任何運氣。

我目前正在使用 Java 8。所以我猜大多數 Java 7 解決方案都行不通。 有沒有其他方法可以解決這個問題?

根據 Spring 文檔ResourceUtils 將在框架內部使用

嘗試使用 Resource 代替:

@Value("classpath:database/scripts")
Resource directories;

或者,您可以使用資源加載器:

@Autowired
ResourceLoader resourceLoader;
...
public Resource loadDirectories() {
    return resourceLoader.getResource(
      "classpath:database/scripts");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM