我在/ src / main / resources /下有多个CSS,图像和文本文件。我必须查看所有以css结尾的文件,并将它们下载到单独的文件夹中。对于图像(以jpg结尾)和文本(以txt结尾)相似。所以我写了这样的代码。
final File folder = new File("src/main/resources/");
并将其传递给以下方法:
public void listFilesForFolder(final File folder) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry);
} else {
System.out.println(fileEntry.getName());
if (fileEntry.getName().endsWith(".css")) {
try {
copyFileUsingApacheCommonsIO(new File(folder.getPath() + "\\" + fileEntry.getName()),
new File(cssFolder + "\\" + fileEntry.getName()));
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
当我运行Spring Boot应用程序时,这工作正常。 但是,当我发动战争并在apache Tomcat中运行它时,文件正在/ WEB-INF / classes /下移动。
所以我更改了如下代码:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
final File folder = new File(classLoader.getResource("/").getPath());
在tomcat中进行战争时,它运行良好。但是上述代码在作为spring-boot应用程序运行时无法正常工作。
我怎么有一个通用代码,既可以作为spring boot应用程序运行又可以在tom-cat中运行? 在以Spring Boot应用程序运行时,通用代码应该进入/ src / main / resources目录,而在Tomcat中以war运行时,应该进入/ WEB-INF / classes目录?