2011-10-14 16 views
6

Bir dosyayı sıkıştırmak için aşağıdaki kodu kullanıyorum ve iyi çalışıyor ama WinRar ile sıkıştırdığımda, uzantı olmadan orijinal dosya adını alıyorum, herhangi bir ipucu neden sıkıştırılmışsa dosya adı myReport.xls ise sadece myReport?GZipStream çalışıyor ancak uzantı kayboldu

using (var fs = new FileStream(fileName, FileMode.Open)) 
{ 
    byte[] input = new byte[fs.Length]; 
    fs.Read(input, 0, input.Length); 
    fs.Close(); 

    using (var fsOutput = new FileStream(zipName, FileMode.Create, FileAccess.Write)) 
    using(var zip = new GZipStream(fsOutput, CompressionMode.Compress)) 
    { 
     zip.Write(input, 0, input.Length); 
     zip.Close(); 
     fsOutput.Close(); 
    } 
} 
+1

AFAIK GZip dosya veya klasörleri hakkında hiçbir fikri yok That

... OTOH Posta olandan çok farklıdır öznitelikleri vb. yerleşik ... belki de bir Zip kütüphanesi kullanmak ister misiniz? – Yahia

+0

IOW, GZip bir sıkıştırma biçimidir, ZIP ise sıkıştırılmış bir arşiv biçimidir. (TAR bir arşiv formatı örneğidir.) –

cevap

12

GZip sadece bir dosyayı sıkıştırır - adı bilmeden. Bu nedenle, myReport.xls dosyasını sıkıştırırsanız, myReport.xls.gz olarak adlandırmanız gerekir. Dekompresyonda, son dosya uzantısı kaldırılacak, böylece orijinal dosya ismiyle sonlanacaksınız. hepsi bu dahil dosyası vardır çünkü yaş için Unix/Linux nasıl kullanıldığını onun yolu ...

+0

Teşekkürler, şimdi sadece .zip ile yerine yerine uzantısı ekleyerek çözüldü sorun oldu. –

2

Gerçekten çok garip. Kısa bir arama aşağıdaki ile geldi: GZipStream yazılırken akışının adını bilmenin bir yolu olduğunu söylüyor ve gösteriyor

http://dotnetzip.codeplex.com/discussions/268293

doğrudan FileName özelliğini ayarlayın.

Bu yardımcı olur umarım.

+0

no çalışmaz, zip nesnesinin atayacağı Ad veya DosyaAdı özelliği bulunmadığından. .NET 3.5 ve .NET 4 ile çalıştı ancak fark yok ... :( –

+0

@Davide Piras Ama DotNetZip kullanırsanız bir 'AddFile' yöntemi vardır - bu dosya adını alır ve saklar ... GZip ZIP farklı bir şeydir isimleri oldukça benzer olmasına rağmen ... – Yahia

İlgili konular