У меня есть следующий код Java для создания ZIP-файла. Файл отлично работает на Linux, но встроенный экстрактор Windows XP блокирует его. Рекомендуемый обходной путь (перейдите к свойствам файла и разблокируйте) также не работает. Я читал об аналогичных проблемах в Интернете и о подобном посте на stackoverflow об этом, но ни одно из этих решений не работает для меня. Любые идеи о том, что может быть причиной проблемы.
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ZipOutputStream zipFile = new ZipOutputStream(byteOut);
loop {
byte [] tempData = "some data".getBytes("UTF-8");
ZipEntry entry = new ZipEntry("blah.txt"); //no path here
entry.setSize(tempData.length); //read somewhere that this might solve the issue, didn't work
entry.setTime((new Date()).getTime()); //tried with and without this.. this is probably redundent since putNextEntry sets the time to current too.
zipFile.putNextEntry(entry);
zipFile.write(tempData);
zipFile.closeEntry();
}
zipFile.close();
приписка
- На моем компьютере с ОС Windows нет защитника Windows.
- Я попытался установить размер записи zip, но он все еще не работает.
- В записи zip не указан абсолютный путь, а в пути нет косых черт.
Спасибо!
Редактировать 1 : Да, я тестировал на других машинах с Windows XP с теми же результатами. Я скачал 7zip, но не смог понять, как проверить метод сжатия. Если кто-то может сказать мне шаги, чтобы сделать это, я могу добавить метод сжатия к комментариям.
Редактировать 2 : я использую мастер извлечения Windows, который говорит: «Windows заблокировала доступ к этим файлам, чтобы защитить ваш компьютер». Ниже этого сообщения есть ссылка «Windows блокирует файлы, помеченные как недоверенные. Почему эти файлы были заблокированы и как я могу их открыть». Нажав на ссылку, вы получите обходной путь (свойства файла -> разблокировать), который не работает.