java.util.zipパッケージのクラス群を使ってzipファイルに圧縮するプログラムを書きました。
一見圧縮はうまくいっているのですが、Windowsで解凍するとファイル更新日時が解凍した日時になってしまいます。
ZipEntry#setTimeメソッドでファイル更新日時をセットしているのですが、、、
同じファイルをWindowsで圧縮して解凍するとファイル更新日時は保持されています。
Javaで圧縮してもファイル更新日時が保持できる方法をご教示ください。
PCはWindows8.1です。
下記にファイル圧縮ロジックを添付します。
lang
1 try (BufferedInputStream fis = new BufferedInputStream( 2 Files.newInputStream(inputFile))) { 3 // Entry名称を取得 4 String entryName = createEntryName(inputFile, baseDir); 5 // 出力先Entryを設定 6 ZipEntry entry = new ZipEntry(entryName); 7 entry.setSize(Files.size(inputFile)); 8 // ファイル更新日時をZipEntryにセット 9 entry.setTime(Files.getLastModifiedTime(inputFile).toMillis()); 10 zos.putNextEntry(entry); 11 // 入力ファイルを読み込み出力ストリームに書き込んでいく 12 int ava = 0; 13 while ((ava = fis.available()) > 0) { 14 byte[] bs = new byte[ava]; 15 fis.read(bs); 16 zos.write(bs); 17 } 18 // 書き込んだらEntryをclose 19 zos.closeEntry(); 20 }

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/08/22 04:04
2014/08/22 04:20