网站建设资讯

NEWS

网站建设资讯

怎么在C#项目中利用7z实现一个文件压缩功能-创新互联

今天就跟大家聊聊有关怎么在C#项目中利用7z实现一个文件压缩功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联自2013年起,先为宜阳等服务建站,宜阳等地企业,进行企业商务咨询服务。为宜阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

1.关于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~1\7-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;
    }

名称栏目:怎么在C#项目中利用7z实现一个文件压缩功能-创新互联
标题路径:http://cdweb.net/article/cdgdgi.html