2015-12-21 21 views

cevap

0

SevenZipExtractor'un bir örneğini oluşturmanız gerekir ve burada arşivinizde sıkıştırılan her dosyanın gerekli dosya bilgilerini bulabileceğiniz ArchiveFileData numaralı özelliğe sahip olmanız gerekir.

SevenZipExtractor extractor = new SevenZipExtractor(path); 
foreach (var file in extractor.ArchiveFileData) 
{ 
    Console.WriteLine("{0} : {1} Bytes", file.FileName, file.Size); 
} 
+0

Soruda söylediğim budur. ArchiveFileData, ArchiveFileInfo yapısını alır ve Boyut, paketlenmemiş dosyanın boyutudur. Sıkıştırılmış dosya boyutuna ihtiyacım var. – a1bT

1

Ne yazık ki, SevenZipSharp bu bilgiyi doldurmuyor gibi görünüyor. İşte ArchiveFileInfo çözdükten boyutunu doldurur nasıl örneğin var:

var fileInfo = new ArchiveFileInfo { Index = (int)i }; 
... 
_archive.GetProperty(i, ItemPropId.Size, ref data); 
fileInfo.Size = NativeMethods.SafeCast<ulong>(data, 0); 

ItemPropId enum olsa kullanılmaz PackedSize özelliği vardır, ben devamsızlık (yorumuna göre) olabilir gerçeği nedeniyle varsayalım:

/// <summary> 
/// Item packed sise; usually absent 
/// </summary> 
PackedSize, 

Bu yüzden bunu elde etmenin tek yolu SevenZipSharp'ı çatallamak ve kendiniz düzeltmek (ya da zaten mevcut bir çatalı aramak). Eğer mümkün olursa.

İlgili konular