메모리 스트림의 C# 등의 이온 우편을 읽기 항목 파일 이름을 기반으로 항목. 어떻게해야합니까? 나는이 방법으로 메모리 스트림에 ZipFile에 압축을 풉니 다 Ionic.Zip을 사용하고
나는 아래의 코드를 호출하여 시도했지만 나는 말했다ZipFile.Read(ms)
에 오류가 발생합니다 :
가 사전에 감사 ZipFile를 같은 것을 읽을 수 없습니다 도움!
Stream ms = GetReplayZipMemoryStream(); using (ZipFile zip = ZipFile.Read(ms)) { ZipEntry imageEntry = zip.Entries.First(x => x.FileName.EndsWith(".png")); using (Stream s = imageEntry.OpenReader()) { var image = Image.FromStream(s); pictureBox1.Image = image; } }
같은 컬렉션을하고 파일 이름을 바이트로 파일을받을 짓을 한 (mem 스트림에서) 더 이상 압축되지 않습니다. 연결된 압축되지 않은 파일이 있습니다. –
Henk Holterman은 중첩 된 zip 파일을 다루지 않는 한 두 번째 조각에서 파일을 한 번 더 압축 해제하면 안됩니다. 압축을 풀려는 파일의 샘플 구조를 제공 할 수 있습니까? 또는 첫 번째 루프에서 모든 필터링을 수행하고 독서하려는 모든 파일을 단일 스트림으로 작성하지 않기 위해 이미지를 만들 수도 있습니다. –
Henk이 만든 관찰 외에도 Ionic을 사용하지 말 것을 제안합니다. 어쨌든이 작업을 수행하려면 Zip을 사용하십시오. .NET은 이제 .zip 파일을 처리 할 수있는 내장 기능을 제공하는'ZipArchive' 클래스를 가지고 있습니다. 그리고 어떤 IMHO가 지금 가지고있는 코드보다 더 편리합니다. –