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#文件压缩与解压的资料请关注毛票票其它相关文章!