c#解压压缩文件和文件夹

本文介绍如何在C#中使用ICSharpCode.SharpZipLib库进行ZIP文件的压缩和解压操作,包括下载DLL、添加引用及使用示例。亲测有效。
摘要由CSDN通过智能技术生成

在工作中遇到需要用到压缩和解压文件的技术,于是在网上找了很多相关资料和demo,发现有很多不能直接使用,有很多问题,压缩出来的要么是空文件,要门是损坏文件,甚至有些直接编译不通过。综合了多位大牛的资料,我整理测试了一个压缩/解压的类文件,分享给大家。亲测可用~~~~得意

这里需要添加一个dll引用ICSharpCode.SharpZipLib.dll点这里下载

需要注意的是这个类只能操作ZIP格式的压缩文件,操作rar格式会有这样的报错:Wrong Local header signature: 0x21726152

1、下载解压

2、引用SharpZipLib.dll到项目中,在项目中点击项目右键-->添加引用-->浏览,找到刚解压的ICSharpCode.SharpZipLib.dll-->确认。

3、增加命名空间的引用。

<pre name="code" class="csharp"><span style="font-size:18px;">#region 命名空间的引用
using ICSharpCode.SharpZipLib;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Checksums;
using System.IO; 
#endregion</span>

 

下面是类文件内容

<span style="font-size:18px;">public static class DealZip
    {

        #region 压缩  
        
        #region 公开压缩方法
        /// <summary>   
        /// 压缩文件或文件夹   ----带密码
        /// </summary>   
        /// <param name="fileToZip">要压缩的路径-文件夹或者文件</param>   
        /// <param name="zipedFile">压缩后的文件名</param>   
        /// <param name="password">密码</param>
        /// <param name="errorOut">如果失败返回失败信息</param>
        /// <returns>压缩结果</returns>   
        public static bool Zip(string fileToZip, string zipedFile, string password, ref string errorOut)
        {
            bool result = false;
            try
            {
                if (Directory.Exists(fileToZip))
                    result = ZipDirectory(fileToZip, zipedFile, password);
                else if (File.Exists(fileToZip))
                    result = ZipFile(fileToZip, zipedFile, password);
            }
            catch (Exception ex)
            {
                errorOut = ex.Message;
            }
            return result;
        }

        /// <summary>   
        /// 压缩文件或文件夹 ----无密码 
        /// </summary>   
        /// <param name="fileToZip">要压缩的路径-文件夹或者文件</param>   
        /// <param name="zipedFile">压缩后的文件名&
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值