C#调用7z实现文件的压缩与解压
1.关于7z
首先在这里先介绍一下7z压缩软件,7z是一种主流的压缩格式,它拥有极高的压缩比。在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的档案格式。主要有以下特点:
- 来源且模块化的组件结构
- 最高的压缩比
- 强大的AES-256加密
- 可更改配置的压缩算法
- 支持操大文件
- 支持多线程压缩
- 具有多种压缩文件格式
2.解压缩实现代码
实现对文件的解压缩方法是通过cmd命令,调用7z程式通过cmd命令实现对文件进行解压和压缩的操作,具体实现代码如下:
- 压缩代码
压缩的cmd命令:"7Za-tzip"+zipPath+" "+filePath;
publicExecutionResultCompressFile(stringfilePath,stringzipPath)//运行DOS命令 { ExecutionResultexeRes=newExecutionResult(); exeRes.Status=true; try { Processprocess=newProcess(); process.StartInfo.FileName="cmd.exe"; stringmessage=""; stringcommand1="c:"; stringcommand2=@"cd\"; stringcommand3=@"cdC:\Progra~1\7-Zip"; stringcommand4=""; command4="7Za-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("EverythingisOk")) { exeRes.Status=false; exeRes.Message=message; } else { exeRes.Anything=zipPath; } } catch(Exceptionex) { exeRes.Message=ex.Message; } returnexeRes; }
- 解压代码
解压的cmd命令:"7Zx-tzip"+zipPath+"-o"+filePath+"-y";
publicExecutionResultDeCompressFile(stringzipPath,stringfilePath)//运行DOS命令 { ExecutionResultexeRes=newExecutionResult(); exeRes.Status=true; try { Processprocess=newProcess(); process.StartInfo.FileName="cmd.exe"; stringmessage=""; stringcommand1="c:"; stringcommand2=@"cd\"; stringcommand3=@"cdC:\Progra~1\7-Zip"; stringcommand4=""; command4="7Zx-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("EverythingisOk")) { exeRes.Status=false; exeRes.Message=message; } else { exeRes.Anything=filePath; } } catch(Exceptionex) { exeRes.Message=ex.Message; } returnexeRes; }
以上就是C#调用7z实现文件的压缩与解压的详细内容,更多关于c#文件压缩与解压的资料请关注毛票票其它相关文章!