zipfile類用於選擇檔案或資料夾進行壓縮生成壓縮包。
常用屬性:
屬性說明
count
檔案數目(注意是在comitupdat之後才有)
password
壓縮包密碼
size
壓縮包占用空間大小
name
壓縮包名稱,預設輸出是檔案路徑
zipentry
壓縮包裡的檔案,通過索引訪問
其常用方法如下:
方法說明
add新增要進行壓縮的檔案
adddirectory
新增資料夾(不會壓縮資料夾裡的檔案)
delete
刪除檔案或資料夾
beginupdate
開始修改壓縮包
commitupdate
提交修改
setcomment
新增注釋
示例1(建立壓縮檔案):
using (zipfile zip = zipfile.create(@"d:\test.zip"))這樣生成的壓縮包是包含子資料夾,子資料夾也是包含子檔案的。
其中,注釋如下:
示例2:修改壓縮包
using(zipfile zip = new zipfile(@"d:\test.zip"))留意這個示例和上面的有什麼不同,上面的是create方法建立的zipfile物件,而這裡是直接讀。因此,如果壓縮包裡面有檔案,則不會改動原來的壓縮檔案,而是往會裡面新增乙個。這樣就相當於壓縮包的修改,而上面是壓縮包的建立。
示例3:讀取壓縮包裡的檔案:
using (zipfile zip = new zipfile(@"d:\test.zip"))這個類就兩個方法:zipentry z1 = zip[0];
console.writeline(z1.name);
}
方法說明
createzip
壓縮目錄
extractzip
解壓縮目錄
1、fastzip用於快速壓縮目錄,示例如下:
//快速壓縮目錄,包括目錄下的所有檔案這個是遞迴壓縮的。但是侷限性就是只能壓縮資料夾。(new fastzip()).createzip(@"d:\test.zip", @"d:\test\", true, "");
否則報如下錯誤:
2、快速解壓縮目錄
//快速解壓以上兩個類是sharpziplib的主類,最耐玩的就是這兩個類。(new fastzip()).extractzip(@"d:\test.zip", @"d:\解壓目錄\", "");
zipoutputstream常用屬性:
屬性說明
isfinished
zipoutputstream是否已結束
zipoutputstream常用方法:
方法說明
closeentry
關閉入口,關閉之後不允許再對zipoutputstream進行操作
finish
結束寫入
getlevel
讀取壓縮等級
putnextentry
往zipoutputstream裡寫入乙個zipentry
setcomment
壓縮包的注釋
setlevel
設定壓縮等級,等級越高檔案越小
write
寫入檔案內容
使用zipoutputstream建立乙個壓縮包並往裡面寫入乙個檔案的示例:
static void main(string args)以上示例僅僅能夠壓縮檔案,要壓縮資料夾就要使用遞迴的方式,迴圈子目錄並壓縮子目錄裡的檔案。while (sourcebytes > 0);
}s.closeentry();
}console.readkey();
}
示例2:資料夾壓縮,保持原資料夾架構:
class program附上解壓縮方法:console.readkey();
}/// /// 壓縮
///
/// 源目錄
/// zipoutputstream物件
public static void compress(string source, zipoutputstream s)
else
while (sourcebytes > 0);}}}}}
/// /// 解壓縮posted @///
/// 原始檔
/// 目標路經
public bool decompress(string sourcefile, string targetpath)
' ", sourcefile));
}if (!directory.exists(targetpath))
using (zipinputstream s = new zipinputstream(file.openread(sourcefile)))
if (filename != string.empty)
else break;}}
}}}return true;
}
2017-12-25 16:26
李華麗 閱讀(
...)
編輯收藏
利用SharpZipLib壓縮 解壓檔案
public class zipinfo 壓縮檔案 private void filetozip string path,string address 解壓到乙個目錄 public bool ziptofile string path,string addres s.close catch exce...
C 壓縮檔案(SharpZipLib)
使用國外開源加壓解壓庫icsharpcode.sharpziplib實現加壓,該庫的官方 為 使用體驗 可以照著例子實現簡單的加壓解壓,可以加壓乙個資料夾中的所有檔案,但沒有提供加壓子資料夾的說明。目前網上的一些 有的無法加壓空資料夾,有的加壓了用rar解不開,這是一點需要改進的。但如果只需要加壓資...
SharpZipLib壓縮檔案和資料夾
正常zip方式壓縮檔案,然後用wrar工具可以解壓出來 開始用wrar3.4版本的怎麼也解不出來,以為是不支援wrar解壓,後來改用3.9及4.11版本可以實現正常解壓,搞了半天時間,原來是版本問題,版本不對害死人啊 另外wrar壓縮時選擇 zip 選項壓縮時,再用此類進行解壓,也可以正常解壓。在此...