首页 > 编程语言 >C# 使用7z压缩

C# 使用7z压缩

时间:2023-05-16 22:04:19浏览次数:48  
标签:tmp Administrator string C# 压缩 Desktop new 7z


项目中,直接获取7z的项目

Install-Package SevenZipSharp -Version 0.64.0

然后,下载7z.dll 

https://github.com/gdoujkzz/7zdll 

然后,项目会用SevenZipSharp的方法调用,7z.dll,实现对文件的7z算法压缩。


/// <summary>
    /// 7z压缩
    /// </summary>
    public class R7z
    {
        public R7z()
        {
            var path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "7z\\7z.dll");
            SevenZipBase.SetLibraryPath(path);
        }
        /// <summary>
        /// 压缩文件
        /// </summary>
        /// <param name="targetName">target.7z</param>
        /// <param name="files">xxx.txt,xxx.txt</param>
        /// <returns></returns>
        public bool CompressFiles(string targetName, params string[] files)
        {
            try
            {
                var tmp = new SevenZipCompressor();
                tmp.ScanOnlyWritable = true;
                tmp.CompressFiles(targetName, files);
                return true;
            }
            catch (Exception)
            { }
            return false;
        }
        /// <summary>
        /// 加密压缩文件
        /// </summary>
        /// <param name="targetName">target.7z</param>
        /// <param name="files">xxx.txt,xxx.txt</param>
        /// <returns></returns>
        public bool CompressFilesEncrypted(string targetName, string password, params string[] files)
        {
            try
            {
                var tmp = new SevenZipCompressor();
                tmp.ScanOnlyWritable = true;
                tmp.CompressFilesEncrypted(targetName, password, files);
                return true;
            }
            catch (Exception)
            { }
            return false;
        }
        /// <summary>
        /// 解压文件
        /// </summary>
        /// <param name="CompressFile">压缩的文件</param>
        /// <param name="targetAddress">解压的目标地址下</param>
        /// <param name="password">解密密码</param>
        /// <returns></returns>
        public bool Decompression(string CompressFile, string targetAddress, string password = "")
        {
            try
            {
                if (string.IsNullOrWhiteSpace(password))
                {
                    using (var tmp = new SevenZipExtractor(CompressFile))
                    {
                        for (int i = 0; i < tmp.ArchiveFileData.Count; i++)
                        {
                            tmp.ExtractFiles(targetAddress, tmp.ArchiveFileData[i].Index);
                        }
                    }
                }
                else
                {
                    using (var tmp = new SevenZipExtractor(CompressFile, password))
                    {
                        for (int i = 0; i < tmp.ArchiveFileData.Count; i++)
                        {
                            tmp.ExtractFiles(targetAddress, tmp.ArchiveFileData[i].Index);
                        }
                    }
                }
            }
            catch (Exception)
            { }
            return false;
        }
    }

使用方式

new R7z().CompressFiles(@"C:\Users\Administrator\Desktop\a.7z", @"C:\Users\Administrator\Desktop\2a2baf80-8ded-4a09-80d4-880a740ebb49");
            new R7z().Decompression(@"C:\Users\Administrator\Desktop\a.7z", @"C:\Users\Administrator\Desktop\");
            new R7z().CompressFilesEncrypted(@"C:\Users\Administrator\Desktop\a.7z", "123456", @"C:\Users\Administrator\Desktop\2a2baf80-8ded-4a09-80d4-880a740ebb49");
            new R7z().Decompression(@"C:\Users\Administrator\Desktop\a.7z", @"C:\Users\Administrator\Desktop", "123456");

经测试正常,下面提供具体的demo


链接:https://pan.baidu.com/s/1r1UzH7xtqWEI8ngtjXWxqg 
提取码:zz81 

 

标签:tmp,Administrator,string,C#,压缩,Desktop,new,7z
From: https://blog.51cto.com/kesshei/6287433

相关文章

  • 手把手教你Tomcat配置环境变量以及验证方法
    场景现在要将Tomcat配置进环境变量。实现以win7为例,找到桌面计算机图表,右键属性。或者打开计算机,找到系统属性。然后找到高级系统设置找到环境变量点击系统变量下的新建找到Tomcat所在目录变量名为:CATALINA_BASE内容为Tomcat所在路径,这里是上面的路径如图:点击确定同理再新建系统变......
  • windows vsCode 支持C语言
    首先下载MinGWhttps://osdn.net/projects/mingw/releases/  基本上就是安装,然后结束安装完的样子在里面找到mingw32-gcc.bin,mingw32-gcc-g++.bin,以及mingw32-gdb.bin第一个是c语言文件的编译器,第二个是c++的,第三个是用来调试编译后文件的。 然后点Installation->Applya......
  • .Net Core 实现WebSocket Server 的另外三种方式
    回顾之前已经写过关于《WebSocket原生socket实现》和《.NetCoreWebSocket服务端与客户端完整示例》以及《基于.NetTcpListener实现WebSocketServer通讯》。其中除了《.NetCoreWebSocket服务端与客户端完整示例》外,都是基于自己对Websocket协议的实现,这种实现在生产环境......
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
    之前业务需要捕捉到业务数据增量部分,并对其进行宽表处理,这也是其中的一个技术方案,方案主要是用了CDC的技术。CDC全称是ChangeDataCapture,捕获变更数据,是一个比较广泛的概念,只要是能够捕获所有数据的变化,比如数据库捕获完整的变更日志记录增、删、改等,都可以称为CDC。该功能被......
  • Grpc MagicOnion库 之 客户端和服务端 (案例版)
    之前通过自己写动态代理和用现成的动态代理库等实现过RPC功能,今天,就写一下如何直接引用GRPC的库来实现业务逻辑。gRPC的介绍,之前我也说了这个g的含义太多,也包含谷歌的意思了。可以看这个gRPC的文档介绍:https://grpc.io/docs/what-is-grpc/MagicOnion这个库用它是因为它内部使用......
  • Vue 报错-4058 ENOENT: no such file or directory的原因和解决办法
    原因是我在上一级目录打开的cmd然后npmrunserve 需要进到app内run一下 ......
  • 1012 数字分类(C++)
    一、问题描述:给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1​ =能被5整除的数字中所有偶数的和;A2​ =将被5除后余1的数字按给出顺序进行交错求和,即计算 n1​−n2​+n3​−n4​⋯;A3​ =被5除后余2的数字的个数;A4​ =被5除后余3的数字......
  • Django4全栈进阶之路24 项目实战(报修类型表):CKEditor富文本
    CKEditor是一个强大的富文本编辑器,可以用于在网站或应用程序中创建和编辑内容。以下是在安装和使用CKEditor的一般步骤:安装CKEditor:下载CKEditor:访问CKEditor官方网站(https://ckeditor.com/)并下载适用于您的项目的CKEditor版本。解压文件:将下载的CKEditor压缩包解压到您的项目......
  • tomcat-1
    Tomcat9.0.24下载与安装最新版教程Tomcat9.0.24下载与安装最新版教程1、下载路径百度云地址:https://pan.baidu.com/s/1x-KCgjJywsFjVcTUc6s6pw提取码:otlr。直接下载得到“TomcatV9.0.rar”压缩包,解压之后从文件夹中找到“apache-tomcat-9.0.24.exe”应用安装程序。以下步......
  • apache整合tomcat
    为什么要用apache来整合tomcat呢?首先,是因为apache是静态服务器,tomcat是动态服务器,二者相辅相成,才能完美构建一个web服务器;其次,用apache作为中心服务器器,将请求分发到多个tomcat,解决负载均衡,实现服务器的稳定性。那么,也有人会说,ngnix整合tomcat不就可以了,而且也很流行。我想说,实现......