Как проверить, существует ли файл в файле war? - PullRequest
2 голосов
/ 13 января 2010

Как я могу проверить, существует ли файл в файле war? Я знаю, что могу использовать

boolean doesExist = new File(myfile).exists();

но как мне использовать это на уроках java на войне? File.getAbsolutePath () просто показывает, где работает файл war. Мне нужно проверить, есть ли в войне изображение в другом каталоге, совпадающее с именем файла в войне, чтобы я мог отобразить это или общее изображение, если оно не существует.

Ответы [ 3 ]

6 голосов
/ 13 января 2010

Ниже представлен подход, который вы должны использовать только , если ваша война не развернута, и вы хотите проверить ее с помощью какого-либо внешнего инструмента.

Если война развернута, и у вас есть 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.
}
6 голосов
/ 13 января 2010

ServletContext.getResource()

От Javadoc:

Этот метод возвращает ноль, если ни один ресурс не сопоставлен с путем.

0 голосов
/ 30 января 2018

Вам необходимо использовать getServletContext (). GetRealPath ("/")

File f = new File(session.getServletContext().getRealPath("/")+"/myFile.ext");
if (f.exists()) {
.......
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...