C#使用SharpZipLib壓縮解壓文件
一、介紹
SharpZipLib是一個(gè)完全由C#編寫的ZIP,GZIP,Tar和BZIP2 Library,可以方便的支持這幾種格式的壓縮和解壓縮。
https://github.com/icsharpcode/SharpZipLib 下載解壓SharpZipLib ,將 ICSharpCode.SharpZipLib .dll 添加至項(xiàng)目引用中.
二、操作指南
1.1 創(chuàng)建zip文件,并添加文件:
using (ZipFile zip = ZipFile.Create(@"E:\test.zip")) { zip.BeginUpdate(); zip.Add(@"E:\文件1.txt"); zip.Add(@"E:\文件2.txt"); zip.CommitUpdate(); }
1.2 將文件夾壓縮為文件
(new FastZip()).CreateZip(@"E:\test.zip", @"E:\test\", true, "");
最后一個(gè)參數(shù)是使用正則表達(dá)式表示的過濾文件規(guī)則。CreateZip方法有3個(gè)重載版本,其中有目錄過濾參數(shù)、文件過濾參數(shù)及用于指定是否進(jìn)行子目錄遞歸的一個(gè)bool類型的參數(shù)。
1.3 將文件添加到已有zip文件中
using (ZipFile zip = new ZipFile(@"E:\test.zip")) { zip.BeginUpdate(); zip.Add(@"E:\test.doc"); zip.CommitUpdate(); }
1.4 列出zip文件中文件
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); }
1.5 刪除zip文件中的一個(gè)文件
using (ZipFile zip = new ZipFile(@"E:\test.zip")) { zip.BeginUpdate(); zip.Delete(@"test.doc"); zip.Delete(@"test22.txt"); zip.CommitUpdate(); }
1.6 解壓zip文件中文件到指定目錄下
(new FastZip()).ExtractZip(@"E:\test.zip", @"E:\test\", "");
三、 常用類
ZipInputStream、GZipInputStream用于解壓縮Deflate、GZip格式流,
ZipOutputStream、GZipOutputStream用于壓縮Deflate、GZip格式流。
StreamUtil類包含了幾個(gè)Stream處理輔助方法:
1) Copy(Stream, Stream, Byte[])用于從一個(gè)Stream對(duì)象中復(fù)制數(shù)據(jù)到另一Stream對(duì)象。有多個(gè)重寫。
2) ReadFully(Stream, Byte [])用于從Stream對(duì)象中讀取所有的byte數(shù)據(jù)。有多個(gè)重寫。
到此這篇關(guān)于C#使用SharpZipLib壓縮解壓文件的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解WPF如何使用WriteableBitmap提升Image性能
這篇文章主要為大家詳細(xì)介紹了WPF如何使用WriteableBitmap提升Image性能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01Unity3D實(shí)現(xiàn)鼠標(biāo)控制旋轉(zhuǎn)轉(zhuǎn)盤
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)鼠標(biāo)控制旋轉(zhuǎn)轉(zhuǎn)盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02C#從文件或標(biāo)準(zhǔn)輸入設(shè)備讀取指定行的方法
這篇文章主要介紹了C#從文件或標(biāo)準(zhǔn)輸入設(shè)備讀取指定行的方法,涉及C#文件及IO操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04利用C#實(shí)現(xiàn)SSLSocket加密通訊的方法詳解
這篇文章主要給大家介紹了關(guān)于如何利用C#實(shí)現(xiàn)SSLSocket加密通訊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07關(guān)于finalize機(jī)制和引用、引用隊(duì)列的用法詳解
下面小編就為大家?guī)硪黄P(guān)于finalize機(jī)制和引用、引用隊(duì)列的用法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09C#實(shí)現(xiàn)塊狀鏈表的項(xiàng)目實(shí)踐
這篇文章主要介紹了C#實(shí)現(xiàn)塊狀鏈表的項(xiàng)目實(shí)踐,通過定義塊和鏈表類,利用塊內(nèi)元素引用實(shí)現(xiàn)塊與塊之間的鏈接關(guān)系,從而實(shí)現(xiàn)對(duì)塊狀鏈表的遍歷、插入和刪除等操作,感興趣的可以了解一下2023-11-11