2025澳门开彩结果历史记录-2025澳门开彩结果-2025澳门开彩查询记录-2025澳门聚宝盆-2025澳门九点半一肖一码-2025澳门精准资料免费全览

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【C#】SharpZipLib,壓縮解壓專家.NET庫!

admin
2025年1月23日 22:53 本文熱度 373

SharpZipLib,壓縮解壓專家.NET庫!

大家好,今天我要和小伙伴們分享一個特別好用的.NET壓縮解壓庫 - SharpZipLib!在開發中,我們經常需要處理文件的壓縮和解壓操作,比如制作安裝包、備份文件等。SharpZipLib就是一個完全由C#編寫的開源壓縮庫,支持ZIP、GZIP、BZip2等多種壓縮格式。

1. 快速入門

首先通過NuGet安裝SharpZipLib:

powershell復制

Install-Package SharpZipLib

2. 文件壓縮實戰

2.1 創建ZIP文件

來看看如何將一個文件夾壓縮成ZIP文件:

csharp復制

using ICSharpCode.SharpZipLib.Zip;

public void CreateZipFile(string folderPath, string zipFilePath)

    FastZip fastZip = new FastZip();
    // 是否包含子文件夾
    fastZip.CreateEmptyDirectories = true
    // 密碼保護,不需要則設為null
    fastZip.Password = "123456";
    // 開始壓縮
    fastZip.CreateZip(zipFilePath, folderPath, true, "");


2.2 解壓ZIP文件

解壓也很簡單,看代碼:

csharp復制

using ICSharpCode.SharpZipLib.Zip;

public void ExtractZipFile(string zipFilePath, string extractPath)

    FastZip fastZip = new FastZip();
    // 設置密碼(如果有的話)
    fastZip.Password = "123456";
    // 開始解壓
    fastZip.ExtractZip(zipFilePath, extractPath, null);


3. GZIP壓縮

有時我們需要壓縮單個文件或數據流,GZIP是個不錯的選擇:

csharp復制

using ICSharpCode.SharpZipLib.GZip;

public void CompressWithGZip(string sourceFile, string compressedFile)

    using (FileStream sourceStream = File.OpenRead(sourceFile))
    using (FileStream targetStream = File.Create(compressedFile))
    using (GZipOutputStream gzipStream = new GZipOutputStream(targetStream))
    {
        byte[] buffer = new byte[4096];
        int readCount;
        while ((readCount = sourceStream.Read(buffer, 0, buffer.Length)) >; 0)
        {
            gzipStream.Write(buffer, 0, readCount);
        }
    }


4. 實用小技巧

4.1 進度監控

想知道壓縮進度嗎?試試這個:

csharp復制

public void ZipWithProgress(string folderPath, string zipFilePath, Action<;int>; progressCallback)

    FastZip fastZip = new FastZip();
    fastZip.CreateZip(zipFilePath, folderPath, true, "");
    
    long totalSize = new DirectoryInfo(folderPath)
        .GetFiles("*.*", SearchOption.AllDirectories)
        .Sum(file =>; file.Length);
    
    using (FileStream fs = File.OpenRead(zipFilePath))
    {
        int progress = (int)((fs.Length * 100) / totalSize);
        progressCallback(progress);
    }


4.2 內存壓縮

有時我們需要在內存中進行壓縮:

csharp復制

public byte[] CompressInMemory(byte[] data)

    using (MemoryStream msCompressed = new MemoryStream())
    {
        using (GZipOutputStream gzipStream = new GZipOutputStream(msCompressed))
        {
            gzipStream.Write(data, 0, data.Length);
        }
        return msCompressed.ToArray();
    }


小貼士

  1. 記得處理壓縮文件時要使用 using 語句,確保資源正確釋放
  2. 壓縮大文件時,建議使用緩沖區讀寫,避免內存溢出
  3. 設置密碼時,推薦使用強密碼,并妥善保管
  4. 解壓前最好先檢查目標路徑是否有足夠空間


閱讀原文:原文鏈接


該文章在 2025/1/24 9:06:18 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 一组三中三免费公开网站 | 2025香港6合宝典新版本下载 | 008855夜明珠预测01 | 澳门一肖一码100准免费资料 | 澳门精准资料免费大全发布软件 | 王中王资料大全 | 118图库印刷彩色黑白免费下载安装 | 青龙阁澳门彩资料2025 | 77778888管管家婆开奖结果 | 管家婆三期内必出一v1.3.0 | 管家婆财贸双全官网 | 二四六天天彩资料大全网正 | 2025澳门天天开好彩大全4 | 管家婆三期开一期精准的背景 | 新澳门资料大全正版资料 | 彩库宝典原始版下载安装官网 | 新2025年澳门全年精准资料大全 | 白小姐四肖期期准免费下载 | 49澳门免费资料大全特色 | 2025年香港免费资料大全 | 118图库app下载| 白小姐白小肖一码期期准 | 今晚澳门一肖一码必中肖 | 今晚四不像必中一肖图最新预测 | 新澳精准资料的 | 香港金光佛论坛网站 | 刘伯温精选资料大全630 | 2025澳门六开彩天天免费资料大全2025今晚上82期资料 | 神算子高手论坛免费资料 | 澳门118图六合图v14.37.9手机版 | 澳门精准资料免费大全发布软件 | 新澳彩资料免费长期公开 | 新澳天天开奖资料大全1052期 | 彩库宝典下载安装官网手机版本 | 黄大仙三肖三码必中肖 | 2025最准资料香港大全 | 六合码绝杀(2025已更新 | 中国13262m奥马1326子赤兔浙 | 香港2025全年免费资料 | 澳门六开奖结 | 2025澳门正版资料大全资料生肖卡 |