gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:21:42 26 4
gpt4 key购买 nike

我需要特定文件夹中的文件路径列表。我希望它在应用程序打包到 jar 后工作,因此使用 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/文件夹3/fil2.json

文件夹2/文件夹3/文件3.kt

文件夹2/文件夹3/文件1.xml

关于java - 如何获取Spring应用程序中特定文件夹中的文件路径列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49871902/

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