栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#调用7z实现文件的压缩与解压

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#调用7z实现文件的压缩与解压

1.关于7z

首先在这里先介绍一下7z压缩软件,7z是一种主流的 压缩格式,它拥有极高的压缩比。在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的档案格式。主要有以下特点:

  • 来源且模块化的组件结构
  • 最高的压缩比
  • 强大的AES-256加密
  • 可更改配置的压缩算法
  • 支持操大文件
  • 支持多线程压缩
  • 具有多种压缩文件格式

2.解压缩实现代码

实现对文件的解压缩方法是通过cmd命令,调用7z程式通过cmd命令实现对文件进行解压和压缩的操作,具体实现代码如下:

  • 压缩代码

压缩的cmd命令:"7Z a -tzip " + zipPath + "  " + filePath;

public ExecutionResult CompressFile(string filePath, string zipPath)//运行DOS命令
    {
      ExecutionResult exeRes = new ExecutionResult();
      exeRes.Status = true;
      try
      {
 Process process = new Process();
 process.StartInfo.FileName = "cmd.exe";
 string message = "";
 string command1 = "c:";
 string command2 = @"cd";
 string command3 = @"cd C:Progra~17-Zip";
 string command4 = "";


 command4 = "7Z a -tzip " + zipPath + " " + filePath;

 process.StartInfo.UseShellExecute = false;
 process.StartInfo.RedirectStandardInput = true;
 process.StartInfo.RedirectStandardOutput = true;
 process.StartInfo.RedirectStandardError = true;
 process.StartInfo.CreateNoWindow = true;
 process.Start();
 process.StandardInput.WriteLine(command1);
 process.StandardInput.WriteLine(command2);
 process.StandardInput.WriteLine(command3);
 process.StandardInput.WriteLine(command4);
 process.StandardInput.WriteLine("exit");
 message = process.StandardOutput.ReadToEnd(); //要等压缩完成后才可以来抓取这个压缩文件

 process.Close();
 if (!message.Contains("Everything is Ok"))
 {
   exeRes.Status = false;
   exeRes.Message = message;
 }
 else
 {
   exeRes.Anything = zipPath;
 }
      }
      catch (Exception ex)
      {
 exeRes.Message = ex.Message;
      }

      return exeRes;
    }
  • 解压代码

解压的cmd命令:"7Z x -tzip " + zipPath + " -o" + filePath + " -y";

public ExecutionResult DeCompressFile( string zipPath, string filePath)//运行DOS命令
    {
      ExecutionResult exeRes = new ExecutionResult();
      exeRes.Status = true;
      try
      {
 Process process = new Process();
 process.StartInfo.FileName = "cmd.exe";
 string message = "";
 string command1 = "c:";
 string command2 = @"cd";
 string command3 = @"cd C:Progra~17-Zip";
 string command4 = "";


 command4 = "7Z x -tzip " + zipPath + " -o" + filePath + " -y";

 process.StartInfo.UseShellExecute = false;
 process.StartInfo.RedirectStandardInput = true;
 process.StartInfo.RedirectStandardOutput = true;
 process.StartInfo.RedirectStandardError = true;
 process.StartInfo.CreateNoWindow = true;
 process.Start();
 process.StandardInput.WriteLine(command1);
 process.StandardInput.WriteLine(command2);
 process.StandardInput.WriteLine(command3);
 process.StandardInput.WriteLine(command4);
 process.StandardInput.WriteLine("exit");
 //process.WaitForExit();
 message = process.StandardOutput.ReadToEnd();//要等压缩完成后才可以来抓取这个压缩文件

 process.Close();
 if (!message.Contains("Everything is Ok"))
 {
   exeRes.Status = false;
   exeRes.Message = message;
 }
 else
 {
   exeRes.Anything = filePath;
 }
      }
      catch (Exception ex)
      {
 exeRes.Message = ex.Message;
      }

      return exeRes;
    }

以上就是C#调用7z实现文件的压缩与解压的详细内容,更多关于c# 文件压缩与解压的资料请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/121627.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号