舊有的GZipStream與DeflateStream有個問題,就是無法處理超過4G的資料流,在.Net 4針對了這個部份做了改善,沒有這個的限制,Stream類別也有加入一些新功能,讓寫法更為簡潔.
舊有的GZipStream與DeflateStream有個問題,就是無法處理超過4G的資料流,在.Net 4針對了這個部份做了改善,沒有這個的限制,Stream類別也有加入一些新功能,讓寫法更為簡潔.
舊的寫法真的是又臭又長,然而這次Stream類別多了一個CopyTo(Stream)這個Function,所以帶來了不少的便利性,看一下.Net 4在壓縮檔案的寫法有何改善.
private void CompFile(string FileName)
{
try
{
using (FileStream fs = File.OpenRead(FileName))
{
using (FileStream oFile = File.Create(new FileInfo(FileName).FullName + ".gz"))
{
using (GZipStream zipFile = new GZipStream(oFile, CompressionMode.Compress))
{
fs.CopyTo(zipFile);
fs.Flush();
zipFile.Flush();
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
MessageBox.Show("Done");
}
}
就短短的這麼幾行Code,就可以完成檔案壓縮,不過在MSDN上所介紹的,「GZipStream與DeflateStream類別的壓縮演算法經過改善後,已經完成壓縮的資料不會再擴大。」這點在測試後,還是有這情況.
不過就寫法而言,真的簡潔許多.
參考: