Bellek Akış C# olarak iyonik Zip Oku giriş dosya adına göre girişler. Bunu nasıl yapabilirim? Ben bu yöntemle bellek akışı zipfile ayıklamak için Ionic.Zip kullanıyorum
aşağıda koduyla arayarak çalıştım ama dediğimZipFile.Read(ms)
üzerinde hata alıyorum:
için şimdiden teşekkür ederiz sıkıştırılmış bir dosya olarak o okunamıyor yardım et!
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; } }
gibi koleksiyonları ve dosya adları bayt gibi dosyaları almak için bir şey yaptım gelmiş (mem akışında) artık sıkıştırılmamış ... Birleştirilmiş sıkıştırılmamış dosyaları bir dizi var. –
Henk Holterman'ın önerdiği gibi, iç içe geçmiş zip dosyaları ile uğraşmadıkça, dosyaları ikinci snippet'te bir kez daha çıkarmanız gerekmez. Unzip etmeye çalıştığınız dosyaların örnek bir yapısını sağlayabilir misiniz? Alternatif olarak, tüm filtrelemeyi ilk döngüde yapmanızı ve belki de okumak istediğiniz tüm dosyaları tek bir akışa yazmamak için görüntüyü oluşturmanızı öneririm. –
Henk'in gözlemine ek olarak, bunu yapmak için Ionic.Zip kullanmamayı tavsiye edeceğim. .NET, .zip dosyalarını işlemek için yerleşik işlevler sağlayan ve şimdi sahip olduğunuz koddan daha uygun olan IMHO olan "ZipArchive" sınıfına sahiptir. –