Sharpziplib フォーラムからこの回答を得ました
やあ
これは WinZip のバグのようです。これは今まで気がつきませんでした。
私はこのテストをしました:
1) WinZip を使用してファイルを zip に追加します。WinZip で、[プロパティと詳細] をクリックします。詳細リストを調べて、ファイルのタイム スタンプを見つけます。
2) SharpZipLib を使用して、同じ入力ファイルで同様の zip ファイルを作成します。結果を Winzip で開き、[プロパティ] > [詳細] でファイルのタイム スタンプを確認します。
私の入力ファイルには 2010-12-14 15:51:28 の Modified タイムスタンプ (ファイル プロパティ) があり、私のテストでは、SharpZipLib はそれを zip に正しく保存しましたが、WinZip は 2010-12-14 15:51:30 として保存しました。
つまり、WinZip は zip に入れるときに 2 秒追加されました。(WinZip または SharpZip のいずれかを使用して) 抽出した後、Modified は元の 15:51:28 ではなく 15:51:30 になりました。
WinZip のこのような明らかなバグが、これほど長い間報告も修正もされずに放置されていたことは驚くべきことです。有料版を使用している場合は、必ずバグ フォールトを報告する必要があります。
古い 8.3 ファイル システムのタイムスタンプで約 2 秒の粒度だったことを思い出しました。
クイックグーグルはこれを見つけました...
「元の DOS ファイル システムでは、ディレクトリ内のファイルを表すのに 32 バイトしかありませんでした。Win32 ファイル システム (VFAT) では、非常に制限的な 8.3 ファイル名とファイル日付の制限された粒度 (2 秒) が修正されています。」http://www.xxcopy.com/xxcopy15.htmから
Zip 形式では、標準のタイム スタンプ エントリで 2 秒の粒度しか許可されません。日付と時刻は、標準の MS-DOS 形式でエンコードされます。
オプションの NTFS Extra Data フィールド (0x000a) を含めることができ、最終変更時刻、最終アクセス時刻、および作成時刻を保持できます。WinZip はそれを作成していないようです。SharpZip は存在する場合はそれを使用しますが、私が見る限り、FastZip を使用して zip を作成すると作成されません。これは、コードに追加する便利なオプションかもしれません。ZipFile を使用している場合は、手動で作成できます。
これが役に立てば幸いです、デビッド