读取/ src / main / resources和/ web-inf / classes下的文件

时间:2018-08-02 07:39:02

标签: java spring spring-boot tomcat

我在/ 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目录?

0 个答案:

没有答案