轉載:msay
C#自帶壓縮和解壓的庫
應用命名空間:using System.IO.Compression;
壓縮:
filePath為傳入壓縮文件的路徑
private static void FileCompression(string filePath)
{
StreamReader sr = new StreamReader(filePath);
//讀取出文件中的內容來
string data = sr.ReadToEnd();
//壓縮文件的后綴名可以隨意起。創建文件路徑為相當路徑,Debug下,也可為絕對路徑
FileStream filedata = new FileStream("myCompression.mZP", FileMode.Create, FileAccess.Write);
//將創建的文件流壓縮
GZipStream zip = new GZipStream(filedata, CompressionMode.Compress);
StreamWriter sw = new StreamWriter(zip);
//將文件的內容寫入到壓縮的流當中
sw.Write(data);
//關閉流
sw.Close();
zip.Close();
sr.Close();
sw.Close();
filedata.Close();
}
解壓:
private static void FileDeCompression()
{
//將在指定相對路徑Debug下,將以壓縮的文件變為一個文件流
FileStream fileCompression = File.OpenRead("myCompression.mZP");
//將文件流解壓
GZipStream gzp = new GZipStream(fileCompression, CompressionMode.Decompress);
//讀出文件流
StreamReader sr = new StreamReader(gzp);
//讀取出解壓后的數據
string data = sr.ReadToEnd();
sr.Close();
gzp.Close();
fileCompression.Close();
}
通過使用上面的兩個方法即可實現對文件或者是數據的壓縮和解壓。
使用C#自帶的庫也會存在一些缺點:無法對文件夾經行壓縮。