2012-06-08 107 views

回答

6

这应该做的伎俩:

static long totaluncompressedsize; 
static string info; 
. 
. 
. 
. 

// Option 1 
foreach (ZipEntry e in zip) 
{ 
    long uncompressedsize = e.UncompressedSize; 
    totaluncompressedsize += uncompressedsize; 
} 

// Or 

// Option 2 - will need to sift through the mass of info   
using (ZipFile zip = ZipFile.Read(zipFile)) 
{ 
    info = zip.Info; 
} 
+0

让我测试它.. – nawfal

+0

感谢,它的工作..其相当快呢..但IM想,如果有可能比迭代更快的方法通过每个条目。 – nawfal

+1

你可以检查zip.Info属性,但这需要很长时间,并返回一大堆有用的(?)信息。 – Taniq

2
public static long GetTotalUnzippedSize(string zipFileName) 
{ 
    using (ZipArchive zipFile = ZipFile.OpenRead(zipFileName)) 
    { 
     return zipFile.Entries.Sum(entry => entry.Length); 
    } 
} 
+0

你能告诉我们这个优点是什么?或者它与以前的答案有什么不同? – nawfal

+0

至少,这个版本编译和工作正常:) – Crulex