2014-04-15 4 views
0

Zlib 형식의 아카이브가 있습니다. C#을 사용하여 압축을 풀려고합니다. 아카이브는 하나의 파일과 더 많은 파일과 폴더로 구성된 폴더를 포함합니다. 지금까지 필자는 단일 최상위 파일의 압축을 풀 수있었습니다. 그러나, 디렉토리가 마술처럼 등장하지 않았고 어디서부터 시작해야할지조차 알지 못합니다. 지금까지 DeflateStream을 사용하여 최상위 파일을 성공적으로 압축 해제했습니다. 나는 DotNetZip을 가지고 있고 그걸 가지고 놀고있다. 그러나 나는 감축 함수에 의해 반환 된 바이트 배열로부터 파일들로 가득 찬 폴더를 만드는 법을 모른다. here을 찾았다.디렉토리가 포함 된 ZLib 압축 파일을 압축 해제하십시오.

+0

있습니까? 몇 가지 코드를 게시하면 도움이됩니다! –

+0

나는 그것에 대해 들어 보지 못했다. 그러나, 나는 [MSDN] (http://msdn.microsoft.com/en-us/library/system.io.compression.ziparchive.aspx?cs-save-lang=1&cs-lang=csharp#에서 코드를 사용해 보았습니다. code-snippet-3), End of Central Directory 레코드를 찾을 수 없음이라는 메시지와 함께 InvalidDataException이 발생했습니다. 이 클래스는 ZLib 압축 해제에 적합합니까? – sirdank

+0

"ZLib 아카이브"와 같은 것은 없습니다. 우편 이라니? gz? tar.gz? –

답변

0

이 작동합니다 : 당신이 .NET 4.5와 함께 제공되는`ZipArchive` 클래스를 사용할 수없는 이유는

using (ZipFile zip = ZipFile.Read(ExistingZipFile)) 
{ 
    foreach (ZipEntry e in zip) 
    { 
     e.Extract(TargetDirectory, true); // overwrite existing files 
    } 
} 
+0

나는 그것을 컴파일 할 수 없다. 이 코드는'System.IO.Compression 네임 스페이스','Ionic.ZLib' 또는'Ionic.Zip'을 사용하고 있습니까? – sirdank

+0

ZipFile 클래스는 System.IO.Compression 네임 스페이스에 선언되어 있습니다. 프레임 워크의 v4.5가 필요합니다. https://msdn.microsoft.com/en-us/library/system.io.compression.zipfile(v=vs.110).aspx –