繁体   English   中英

如何在Spring应用程序中的特定文件夹中获取文件路径列表

[英]How to get a list of file paths in a specific folder in Spring app

我需要特定文件夹中文件路径的列表。 我希望将应用程序打包到罐子中后才能工作,因此使用File对象可能无法工作。

路径需要以静态文件夹开头,例如:

/static/json/networks/network.json

到目前为止,我已经尝试过了:

File folder = new File("src/main/resources/static/json/networks/pools");
File[] listOfFiles = folder.listFiles();

但这给了我以下路径的列表:

/src/main/resources/static/etc

我将无法与ClassPathResource一起使用。 我也尝试过:

ClassLoader classLoader = MethodHandles.lookup().getClass().getClassLoader();
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(classLoader);

但这为我提供了文件的绝对路径。

您可以尝试使用一个名为maven-shared-utils的库(检查类DirectoryScanner)。

或者您可以自己做:

@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {

    SpringApplication.run(DemoApplication.class, args);

    final String baseFolder = "folder1";
    try {
    Path pathBase = Paths.get(ClassLoader.getSystemResource(baseFolder).toURI());

        Files.walk(pathBase.resolve("folder2/folder3"))
                .filter(Files::isRegularFile)
                .forEach(f -> System.out.println(pathBase.relativize(Paths.get(f.toUri()))));
    } catch (IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

 }}

此代码将为src/main/resouces/folder1/folder2/folder3/*的文件打印:

文件夹2 / folder3 / fil2.json

文件夹2 / folder3 / file3.kt

文件夹2 / folder3 / file1.xml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM