2011-06-04 66 views
-1

可能重複:
.Net Zip Up files如何壓縮文本文件

嗨,

我有創建一個文本文件到壓縮文件有問題,

我正在創建一個讀取數據文件並將其轉換爲文本文件的項目。

我的代碼創建。我要壓縮其創建的文本文件的文本文件,

這裏是我的代碼,

private void button1_Click(object sender, EventArgs e) 
{ 
    string path = DayFuturesDestination + "\\" + txtSelectedDate.Text + ".txt"; 
    StreamWriter Strwriter = new StreamWriter(path); 
} 

任何人都可以請說我以後如何創建壓縮文件將其創建爲文本文件。

在此先感謝。

+2

@G ARSHIYA:難道只是我,還是你只是發佈[同樣的事情(http://stackoverflow.com/問題/ 6234858/how-to-zip-a-text-file)在另一個帳戶中? – Mehrdad 2011-06-04 05:32:51

回答

6

首先,你需要做更多的IO流來完成你打算壓縮的文件。下面的例子顯示了你可以做到這一點的一種方法。

如果你想堅持只與.NET Framework和只是想壓縮和解壓縮,可以使用System.IO.Compression.GZipStream,附着在GNU Zip格式。請注意,這與ZIP存檔格式不同。爲此,您需要第三方庫,例如DotNetZip。後者更容易實現,並且可能比GZipStream更好。

例如,適應DotNetZip的示例代碼:

private void button1_Click(object sender, EventArgs e) 
{ 
    string path = DayFuturesDestination + "\\" + txtSelectedDate.Text + ".txt"; 
    StreamWriter Strwriter = new StreamWriter(path); 
    Strwriter.Write(textToAdd); 
    Strwriter.Flush(); 
    Strwriter.Close(); 

    using (ZipFile zip = new ZipFile()) 
    { 
     zip.AddFile(path); 
     zip.Save(path + ".zip"); 
    } 
} 
+0

您可能想要查看/修復某人在本示例中從MSDN指出的錯誤。這一切都在頁面上的評論。總而言之,恕我直言,GZipStream並不是一個很好的解決方案,並且有幾個很好的和光滑的開源解決方案。 – philhobgen 2011-06-04 05:54:05

+0

@ stupid-phil:我同意GZipStream不是最好的選擇,所以我更新了我的文章,只包含DotNetZip代碼示例。 – Matt 2011-06-04 06:13:36

+0

和+1給你給他的代碼! ;-) – philhobgen 2011-06-04 06:20:28