91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

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

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

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

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

1. 快速入門

首先通過NuGet安裝SharpZipLib:

powershell復(fù)制

Install-Package SharpZipLib

2. 文件壓縮實(shí)戰(zhàn)

2.1 創(chuàng)建ZIP文件

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

csharp復(fù)制

using ICSharpCode.SharpZipLib.Zip;

public void CreateZipFile(string folderPath, string zipFilePath)

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


2.2 解壓ZIP文件

解壓也很簡單,看代碼:

csharp復(fù)制

using ICSharpCode.SharpZipLib.Zip;

public void ExtractZipFile(string zipFilePath, string extractPath)

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


3. GZIP壓縮

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

csharp復(fù)制

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. 實(shí)用小技巧

4.1 進(jìn)度監(jiān)控

想知道壓縮進(jìn)度嗎?試試這個:

csharp復(fù)制

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 內(nèi)存壓縮

有時我們需要在內(nèi)存中進(jìn)行壓縮:

csharp復(fù)制

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. 壓縮大文件時,建議使用緩沖區(qū)讀寫,避免內(nèi)存溢出
  3. 設(shè)置密碼時,推薦使用強(qiáng)密碼,并妥善保管
  4. 解壓前最好先檢查目標(biāo)路徑是否有足夠空間


閱讀原文:原文鏈接


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

主站蜘蛛池模板: 国产欧美日韩乱伦 | 91视频福利影院 | 国产成a人片在线 | 日本汚视频在线观 | 91偶偶福利| 欧美一区二区三 | 日韩xxx免费视频 | 91福利合集系列 | 无码精品久久久久久人妻中字 | www.99re8| 日本看片一卡 | 欧亚日韩| 国产探花视频 | 国产免费一 | 日韩福利局二区视频 | 精品三级国产在线看 | 日本二区 | 国产精品你懂 | 国色天香 | 欧美日韩国产字幕 | 欧美性色高清生活片 | 国产乱子伦视频三区 | 国产精品玖玖玖 | 日本a级高清影片 | 国产专区手机在 | 日本影片一区二区 | 欧美日韩一区观看 | 国产精品视频顷一区 | 国产一区欧美亚洲 | 九九国产热播 | 三级视频网 | 97人人超| 欧美日韩国产日韩 | 精品中文字幕女同 | 91影院在线观看 | 老牛影院在线观看 | 97影院 | 国产精品视频全 | 国产免费中文综合 | 99tv无| 精品无人区一区二 |