0

C#でSharpZipLibを使用して、私は使用しています:

// ..
ZipEntry entry = new ZipEntry(Path.GetFileName(files[i].fullfilename));
entry.DateTime =files[i].datemodified //has everything including milliseconds
//.. some more code which i'm not writing

zip ファイルは問題なく作成されますが、サードパーティの解凍ツールを使用して解凍すると、ファイルの変更日でミリ秒単位の情報が失われていることがわかります (ミリ秒単位の情報は私にとって非常に重要です)。ZipEntry のコードとその DateTime プロパティを見ました

このエントリの日時として zip ファイルに書き込まれる内容は次のとおり です ms dos フォーマット時間。fileinfoの「LastWriteTime」から取得した元のDateTimeにあった変更された日時にすべてが最終的なzipファイルに含まれるように、これをどのように書くか教えてください。

ありがとう。

4

2 に答える 2

0

ミリ秒の情報を保存する唯一の方法 (私が知っている) は、NTFS 追加フィールドを使用することです。ただし、PKWARE 仕様に従ってこのフィールドを記述する方法を学習する必要があります。また、サードパーティのデコンプレッサがそれをサポートするという保証はありません (ほとんどの場合、サポートされません)。

于 2015-03-27T17:17:56.383 に答える
0

秒までの時間で Unix の追加フィールドを含める方法については、 zip 仕様を読むことができます。ミリ秒の情報を運ぶ定義済みの追加フィールドを認識していないため、独自のフィールドを作成し、それを処理する独自のジッパーとアンジッパーを作成する必要があります。

于 2015-03-27T17:12:49.380 に答える