[英]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.