IonicZip 的基本運用

  • 1089
  • 0
  • C#
  • 2014-08-22

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 方法來讀取壓縮檔。可使用檔案名稱、資料流或位元陣列來開啟壓縮檔。

 

其餘更多的東西請自行參考線上說明文件


程式是運氣與直覺堆砌而成的奇蹟。
若不具備這兩者,不可能以這樣的工時實現這樣的規格。
修改規格是對奇蹟吐槽的褻瀆行為。
而追加修改則是相信奇蹟還會重現的魯莽行動。