Извлечь несжатый размер zip-файла, встроенного в jar - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть zip-файл, встроенный в мою банку, и я хочу прочитать несжатый размер.Мой текущий способ сделать это:

ZipFile zipFile = new ZipFile(new File(this.getClass().getClassLoader().getResource("files.zip").toURI()));
Enumeration<? extends ZipEntry> e = zipFile.entries();
long installedSize = 0;
while (e.hasMoreElements()) {
    ZipEntry entry = e.nextElement();
    installedSize += entry.getSize();
}

Это, конечно, довольно грязно и не работает, когда я встраиваю свой jar-файл в exe-файл, используя JSmooth.

Есть лилучший способ сделать это (без копирования zip-файла)?

1 Ответ

0 голосов
/ 19 декабря 2011

getSize() возвращает несжатый размер. Это противоположно getCompressedSize(). И оба прекрасно работают с zip-файлами, либо хранятся в виде отдельного файла, либо встраиваются в другие zip-файлы. К сожалению, я не знаю, как вы можете решить эту проблему с JSmooth.

Если files.zip - ваши файлы, вы можете проверить размер записей во время сборки и поместить результат в файл свойств. Это патч, но он будет работать.

...