私はを使用していて、ArchiveFileInfo
構造体のSizeプロパティを持っています。 "ファイルのサイズを取得または設定します(開梱済み)"。7-zipアーカイブでパックファイルのサイズを取得する方法
アーカイブ内のパックファイルのサイズを取得するにはどうすればよいですか?
私はを使用していて、ArchiveFileInfo
構造体のSizeプロパティを持っています。 "ファイルのサイズを取得または設定します(開梱済み)"。7-zipアーカイブでパックファイルのサイズを取得する方法
アーカイブ内のパックファイルのサイズを取得するにはどうすればよいですか?
SevenZipExtractor
のインスタンスを作成する必要があります。そこには、ArchiveFileData
というプロパティがあります。そこには、アーカイブに圧縮された各ファイルの必要なファイル情報があります。
SevenZipExtractor extractor = new SevenZipExtractor(path);
foreach (var file in extractor.ArchiveFileData)
{
Console.WriteLine("{0} : {1} Bytes", file.FileName, file.Size);
}
残念ながら、SevenZipSharpはこの情報を記入していないようです。ここではArchiveFileInfo
でアンパックサイズを埋める方法の例のためです:
var fileInfo = new ArchiveFileInfo { Index = (int)i };
...
_archive.GetProperty(i, ItemPropId.Size, ref data);
fileInfo.Size = NativeMethods.SafeCast<ulong>(data, 0);
ItemPropId
列挙型は、私はそれが(コメントに応じて)存在しなくてもよいという事実に起因すると仮定し、しかし使用されていないPackedSize
性質を持っています
/// <summary>
/// Item packed sise; usually absent
/// </summary>
PackedSize,
私はそれを得るための唯一の方法は、SevenZipSharpをフォークし、あなた自身でそれを修正しようとすることです(または既存のフォークを検索する)。それがすべて可能ならば。
これは私が質問で言ったことです。 ArchiveFileDataはArchiveFileInfo構造体を取得し、Sizeは展開されたファイルのサイズです。圧縮ファイルのサイズが必要です。 – a1bT