IonicZip 的基本運用
Ionic.Zip 是一個相當方便用來處理 ZIP 檔案的 NET 元件庫,官網在此,目前的版本為 v1.9.1.8。
1. 開啟/建立壓縮檔
ZipFile(FileName, [Encoding])
指定壓縮檔案的路徑,並使用指定的編碼方式。
例:
using (ZipFile ZipArchive = new ZipFile(ZipFileName, System.Text.Encoding.Default))
{
..... your code
}
2. 新增/更新壓縮檔中的項目
可以透過 ZipFile.UpdateItem 方法來進行項目的更新,當項目不存在於壓縮檔中,則會自動建立。若是存在於檔案中,則會進行更新。
using (ZipFile ZipArchive = new ZipFile(ZipFileName, System.Text.Encoding.Default))
{
if (System.IO.Directory.Exists(ArchiveFileName))
{
ZipArchive.UpdateItem(ArchiveFileName, new System.IO.DirectoryInfo(ArchiveFileName).FullName);
}
else
{
ZipArchive.UpdateItem(ArchiveFileName);
}
ZipArchive.Save();
}
3. 刪除壓縮檔中的項目
透過 ZipFile.RemoveEntry 方法來刪除指定的項目。
using (ZipFile ZipArchive = new ZipFile(ZipFileName, System.Text.Encoding.Default))
{
ZipArchive.RemoveEntry(DeleteFilePath + "/" + DeleteFileName);
ZipArchive.Save();
}
4. 解壓縮檔案
可以透過 ZipEntry.Extract 或是 ZipFile.ExtractSelectedEntries 來解壓縮指定的檔案。
using (ZipFile ZipArchive = new ZipFile(ZipFileName, System.Text.Encoding.Default))
{
foreach (ZipEntry tmpFileEntry in ZipArchive.Entries)
{
if (tmpFileEntry.FileName == SelectFilePath + "/" + SelectFileName) tmpFileEntry.Extract(ExtractPath, ExtractExistingFileAction.OverwriteSilently);
}
}
using (ZipFile ZipArchive = new ZipFile(ZipFileName, System.Text.Encoding.Default))
{
ZipArchive.ExtractAll(ExtractPath, ExtractExistingFileAction.OverwriteSilently);
return true;
}
5. 測試檔案是否為 ZIP 檔
ZipFile.IsZipFile(TestFileName) 當傳回值為 true 時,則該檔案為 ZIP 壓縮檔案格式。
6. 讀取壓縮檔
可以透過 ZipFile.Read 方法來讀取壓縮檔。可使用檔案名稱、資料流或位元陣列來開啟壓縮檔。
其餘更多的東西請自行參考線上說明文件。
程式是運氣與直覺堆砌而成的奇蹟。
若不具備這兩者,不可能以這樣的工時實現這樣的規格。
修改規格是對奇蹟吐槽的褻瀆行為。
而追加修改則是相信奇蹟還會重現的魯莽行動。