如何检查war文件中是否存在文件?我知道我可以使用
boolean doesExist = new File(myfile).exists();
Run Code Online (Sandbox Code Playgroud)
但是如何在战争中的java类中使用它呢?file.getAbsolutePath()只显示war文件的运行位置.我需要检查战争中另一个目录中是否存在与战争中的文件名匹配的图像,以便我可以显示该图像或一般图像(如果它不存在).
以下是一种只有在未部署战争并且想要通过某些外部工具进行检查时才应使用的方法.
如果部署了战争,并且你有ServletContext可用的战争,那么请使用它(如axtavt的回答所示)
一个war文件是一个zip文件,这样你就可以用阅读java.util.zip包装,使用的ZipFile:
ZipFile zipFile = new ZipFile("/path/to/archive.war");
ZipEntry entry = zipFile.getEntry("yourSearchedEntry");
if (entry == null) {
// the file is not found in the war.
}
Run Code Online (Sandbox Code Playgroud)