精华内容
下载资源
问答
  • C# 压缩解压Zip文件
    千次阅读
    2020-12-24 02:04:12

     //添加引用ICSharpCode.SharpZipLib.dll

    
            #region 加压方法
            /// <summary>
            /// 功能:压缩文件(暂时只压缩文件夹下一级目录中的文件,文件夹及其子级被忽略)
            /// </summary>
            /// <param name="dirPath">被压缩的文件夹夹路径</param>
            /// <param name="zipFilePath">生成压缩文件的路径,为空则默认与被压缩文件夹同一级目录,名称为:文件夹名+.zip</param>
            /// <param name="err">出错信息</param>
            /// <returns>是否压缩成功</returns>
            public static bool ZipFile(string dirPath, string zipFilePath, out string err)
            {
                err = "";
                if (dirPath == string.Empty)
                {
                    err = "要压缩的文件夹不能为空!";
                    return false;
                }
                if (!Directory.Exists(dirPath))
                {
                    err = "要压缩的文件夹不存在!";
                    return false;
                }
                //压缩文件名为空时使用文件夹名+.zip
                if (zipFilePath == string.Empty)
                {
                    if (dirPath.EndsWith("//"))
                    {
                        dirPath = dirPath.Substring(0, dirPath.Length - 1);
                    }
                    zipFilePath = dirPath + ".zip";
                }
     
                try
                {
                    string[] filenames = Directory.GetFiles(dirPath);
                    using (ZipOutputStream s = new ZipOutputStream(File.Create(zipFilePath)))
                    {
                        s.SetLevel(9);
                        byte[] buffer = new byte[4096];
                        foreach (string file in filenames)
                        {
                            ZipEntry entry = new ZipEntry(Path.GetFileName(file));
                            entry.DateTime = DateTime.Now;
                            s.PutNextEntry(entry);
                            using (FileStream fs = File.OpenRead(file))
                            {
                                int sourceBytes;
                                do
                                {
                                    sourceBytes = fs.Read(buffer, 0, buffer.Length);
                                    s.Write(buffer, 0, sourceBytes);
                                } while (sourceBytes > 0);
                            }
                        }
                        s.Finish();
                        s.Close();
                    }
                }
                catch (Exception ex)
                {
                    err = ex.Message;
                    return false;
                }
                return true;
            }
            #endregion
     
            #region 解压
            /// <summary>
            /// 功能:解压zip格式的文件。
            /// </summary>
            /// <param name="zipFilePath">压缩文件路径</param>
            /// <param name="unZipDir">解压文件存放路径,为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹</param>
            /// <param name="err">出错信息</param>
            /// <returns>解压是否成功</returns>
            public static bool UnZipFile(string zipFilePath, string unZipDir, out string err)
            {
                err = "";
                if (zipFilePath == string.Empty)
                {
                    err = "压缩文件不能为空!";
                    return false;
                }
                if (!File.Exists(zipFilePath))
                {
                    err = "压缩文件不存在!";
                    return false;
                }
                //解压文件夹为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹
                if (unZipDir == string.Empty)
                    unZipDir = zipFilePath.Replace(Path.GetFileName(zipFilePath), Path.GetFileNameWithoutExtension(zipFilePath));
                if (!unZipDir.EndsWith("//"))
                    unZipDir += "//";
                if (!Directory.Exists(unZipDir))
                    Directory.CreateDirectory(unZipDir);
     
                try
                {
                    using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipFilePath)))
                    {
     
                        ZipEntry theEntry;
                        while ((theEntry = s.GetNextEntry()) != null)
                        {
                            string directoryName = Path.GetDirectoryName(theEntry.Name);
                            string fileName = Path.GetFileName(theEntry.Name);
                            if (directoryName.Length > 0)
                            {
                                Directory.CreateDirectory(unZipDir + directoryName);
                            }
                            if (!directoryName.EndsWith("//"))
                                directoryName += "//";
                            if (fileName != String.Empty)
                            {
                                using (FileStream streamWriter = File.Create(unZipDir + theEntry.Name))
                                {
     
                                    int size = 2048;
                                    byte[] data = new byte[2048];
                                    while (true)
                                    {
                                        size = s.Read(data, 0, data.Length);
                                        if (size > 0)
                                        {
                                            streamWriter.Write(data, 0, size);
                                        }
                                        else
                                        {
                                            break;
                                        }
                                    }
                                }
                            }
                        }//while
                    }
                }
                catch (Exception ex)
                {
                    err = ex.Message;
                    return false;
                }
                return true;
            }//解压结束
            #endregion

     

    更多相关内容
  • C# zip文件解压缩

    2016-07-14 14:58:41
    C# zip文件解压缩 只能实现一级目录的解压缩
  • C#Zip库文件

    2017-12-04 20:20:44
    C# Zip 解压 压缩 库文件 在C#环境,Unity3d开发中常用的工具
  • 主要介绍了C#实现Zip压缩目录中所有文件的方法,涉及C#针对文件的读写与zip压缩相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • C# Zip解压缩文件

    热门讨论 2011-01-18 17:54:52
    使用ICSharpCode.SharpZipLib.dll实现C#解压缩文件。Bin目录下有支持不同.NET版本的ICSharpCode.SharpZipLib.dll
  • C#ZIP压缩客户端程序

    2018-07-14 17:53:06
    C#ZIP压缩客户端程序,可以通过程序对文件进行压缩,有需要的可以拿走。
  • C# zip压缩 Ionic.Zip.dll

    2017-03-29 08:46:10
    using (ZipFile zip = new ZipFile(@"E:\\yangfeizai\\"+ FileName+".zip",Encoding.Default)) { //加密压缩 zip.Password = "123456"; //将要压缩的文件夹添加到zip对象中去(要压缩的文件夹路径和名称) ...
  • C#调用系统功能(zipfldr)解压zip文件,支持Windows XP、Windows Vista/7/8/10。其中提供了两种方法,一种只能支持编译计算机使用的操作系统,另一种支持各版本Windows操作系统(默认) 单击demo按钮:即可将"c:\123\...
  • C#创建ecxel文件.zip

    2019-10-09 15:19:17
    具体内容可看博客:https://www.cnblogs.com/luxiaoguogege/p/11630995.html
  • C# zip操作类

    2012-05-24 12:03:28
    该cs文件包含两个类ZipClass和UnZipClass。ZipClass实现了对文件夹、文件集和单个文件的压缩。UnZipClass实现了对压缩文件的解压
  • C#实现选择文件读取文件内容,我们可能要对本地文件进行读取,然后可能取进数据库等,这里只是做了读取文件内容显示出来没有入库操作。
  • C# Zip 压缩和解压 NET 4.5 using System.IO.Compression;
  • c#zip压缩与解压

    2010-12-15 09:40:33
    c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压
  • C# Zip 类库

    2014-04-24 14:25:46
    C# Zip 类库 icsharpcode-SharpZipLib-c49a22d
  • C# 打包 zip

    2013-07-03 12:38:39
    ZipEntry theEntry; while ((theEntry = s.GetNextEntry()) != null) { string fullname = Server.MapPath("ziptemp/" + urlid + "/" + theEntry.Name); string directoryName = Path.GetDirectoryName...
  • 演示C# .NET 的内置函数 自定义函数写法!可以再次基础上进行扩展.
  • 从别的地方转载的,挺不错的!
  • c# 解压zip完整demo 带进度条
  • C# zip压缩文件的打包与解压缩

    热门讨论 2012-09-11 17:16:10
    C# zip压缩文件的打包与解压缩,代码完整,可以运行!
  • C#解压ZIP源码

    2017-12-04 10:08:58
    C#自动解压ZIP源码(覆盖原有文件),需指定ZIP路径和解压位置
  • 压缩包制作也是很多项目中需要用到的功能。接下来通过本文给大家介绍基于C# 生成Zip压缩包代码,对c生成zip压缩包相关知识感兴趣的朋友一起学习吧
  • C# csharp实现的zip压缩库,值得C#开发人员收藏!是集成的利器
  • C#打包文件夹成ZIP

    2013-03-29 15:59:45
    C#打包zip文件可以调用现成的第三方dll,事半功倍,而且该dll完全免费,下载地址:SharpZipLib 下载完解压缩后,把 ICSharpCode.SharpZipLib.dll 拷贝到当前项目的目录下(如果偷懒的话,可以直接拷贝到当前项目的...
  • string zipUrl = @"C:\Users\Administrator\Desktop\test.zip"; AppendToZip.Main(zipUrl); 文件只是一个案例。添加多个可以循环以下代码: zipStream.PutNextEntry(newEntry); StreamUtils.Copy(streamReader, ...
  • C#类库完整版.zip

    2019-06-13 08:27:28
    包含开发中所用到的几乎所有的net类,比较适合不同阶段的Net开发者
  • C#实现zip压缩,解压zip文件源代码,附加有注释,代码清晰易懂!
  • C# 环境下如何实现AES数据加密 视频演示:https://space.bilibili.com/1624771
  • C#Zip压缩解压

    2013-06-13 08:47:42
    绝对能用的zip解压类,本人亲测,有什么疑问欢迎留言
  • c#开发帮助类.zip

    2019-08-05 13:28:40
    c#开发帮助类.zip
  • C#zip压缩程序

    2011-12-14 14:11:41
    C#ZIP压缩例子,支持文件夹,例子很简单,适合新手朋友,或者想再c#下使用ZIP压缩的朋友

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,501
精华内容 19,000
关键字:

c#zip

c# 订阅
友情链接: jjcc.rar