我有以下java代碼來創建一個zip文件。該文件在Linux上正常工作,但Windows XP的本地提取程序阻止它。建議的解決方法(轉到文件屬性並取消阻止)也不起作用。我已經閱讀了關於網絡上的類似問題以及關於此問題的類似帖子,但是這些解決方案都不適用於我。任何可能導致問題的想法。Windows XP阻止我的程序創建的zip文件
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 defender。
- 我曾嘗試設置zip條目的大小,但它仍然無效。
- 在zip條目中沒有指定絕對路徑,並且路徑中沒有斜槓。
謝謝!
編輯1:是的,我已經在Windows XP的其他機器上測試過,結果相同。我下載了7zip,但無法弄清楚如何檢查壓縮方法。如果有人能告訴我這樣做的步驟,我可以將壓縮方法添加到評論中。
編輯2:我使用windows本機提取向導,它說「Windows已阻止訪問這些文件以幫助保護您的計算機」。在此消息的下面有一個鏈接,指出「Windows阻止標記爲不可信的文件,爲什麼這些文件被阻止,我如何打開它們」。單擊該鏈接可爲您提供無法使用的解決方法(文件屬性 - >解除阻止)。
奇怪...在另一臺機器上測試過?另外,它使用什麼壓縮方法(7-zip可以告訴你)? – 2010-11-22 22:19:00