У меня проблема с распаковкой ZIP-файла с использованием Java. Метод ниже.
Структура файла является правильной после того, как файл распакован, это означает, что каталоги в ZIP-файле в порядке, но выходные файлы имеют нулевую длину.
Я проверил ZIP-файл, чтобы проверить, правильно ли сжатие, там все правильно.
Пожалуйста, если кто-нибудь увидит что-то, что я пропустил ...
public static void unzip ( File zipfile, File directory ) throws IOException {
ZipFile zip = new ZipFile ( zipfile );
Enumeration<? extends ZipEntry> entries = zip.entries ();
while ( entries.hasMoreElements () ) {
ZipEntry entry = entries.nextElement ();
File file = new File ( directory, entry.getName () );
if ( entry.isDirectory () ) {
file.mkdirs ();
}
else {
file.getParentFile ().mkdirs ();
ZipInputStream in = new ZipInputStream ( zip.getInputStream ( entry ) );
OutputStream out = new FileOutputStream ( file );
byte[] buffer = new byte[4096];
int readed = 0;
while ( ( readed = in.read ( buffer ) ) > 0 ) {
out.write ( buffer, 0, readed );
out.flush ();
}
out.close ();
in.close ();
}
}
zip.close ();
}
Нечто большее ... Видимо, метод getInputStream (entry) возвращает ноль байтов, точно не знаю, почему.