最近搞點壓縮解壓縮。無奈rar是不開源的,只能玩玩zip了。
找到了SharpZipLib 這個好東西。
官方網站: http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx
:http://www.icsharpcode.net/OpenSource/SharpZipLib /Download.aspx
介紹:
SharpZipLib 是一個免費的Zip操作類庫,可以利用它對 ZIP 等多種格式進行壓縮與解壓。SharpZipLib使用C#編寫的,在VB.NET、C#或其他的.NET語言中都可以使用它建立Zip檔案、並進行讀取 和更新等操作。
1、建立zip檔案,並添加檔案:
using (ZipFile zip = ZipFile.Create(@"E:\test.zip"))
{
zip.BeginUpdate();
zip.Add(@"E:\檔案1.txt");
zip.Add(@"E:\檔案2.txt");
zip.CommitUpdate();
}
2、將檔案夾壓縮為檔案:
(new FastZip()).CreateZip(@"E:\test.zip", @"E:\test\", true, "");
最後一個參數是使用Regex表示的過濾檔案規則。CreateZip方法有3個重載版本,其中有目錄過濾參數、檔案過濾參數及用於指定是否進行子目錄遞迴的一個bool類型的參數。
3、將檔案添加到已有zip檔案中:
using (ZipFile zip = new ZipFile(@"E:\test.zip"))
{
zip.BeginUpdate();
zip.Add(@"E:\test.doc");
zip.CommitUpdate();
}
4、列出zip檔案中檔案
Code
using (ZipFile zip = new ZipFile(@"E:\test.zip"))
{
string list = string.Empty;
foreach (ZipEntry entry in zip)
{
list += entry.Name + "\r\n";
}
MessageBox.Show(list);
}
5、刪除zip檔案中的一個檔案
using (ZipFile zip = new ZipFile(@"E:\test.zip"))
{
zip.BeginUpdate();
zip.Delete(@"test.doc");
zip.Delete(@"test22.txt");
zip.CommitUpdate();
}
6、解壓zip檔案中檔案到指定目錄下
(new FastZip()).ExtractZip(@"E:\test.zip", @"E:\test\", "");
7、常用類:
ZipInputStream、GZipInputStream用於解壓縮Deflate、GZip格式流,ZipOutputStream、GZipOutputStream用於壓縮Deflate、GZip格式流。
StreamUtil類包含了幾個Stream處理輔助方法:
①、Copy(Stream, Stream, Byte[])用於從一個Stream對象中複製資料到另一Stream對象。有多個重寫
②、ReadFully(Stream, Byte [])用於從Stream對象中讀取所有的byte資料。有多個重寫