2012-06-08 7 views
2

Ionic zip을 사용하여 압축 된 zip 파일이 있습니다. 압축을 풀기 전에 사용 가능한 디스크 공간을 확인해야합니다. 그러나 압축되지 않은 크기를 미리 알아 내려면 어떻게해야합니까? zip 파일에 머리말 정보가 있나요 (이온으로)? 그래서 읽을 수 있습니까?이온 zip 파일의 압축되지 않은 크기를 찾는 방법

답변

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

감사를 테스트하자, 그것은 일의 매우 빠른 너무 ..하지만 반복보다 더 빠른 방법이있을 수 있는지 생각 임 각 항목을 통해. – 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