C# 利用winrar解压带密码的压缩包
前言: 基于上篇文章介绍了在Android中生成带密码的压缩包,根据需求,我需要在桌面将其进行解压。解压的过程中,我们可以将压缩包中需要保密的文件利用其它方法同时进行加密,以保证解压后数据的安全性。
这种方式解压的代码比较简单,不再累赘介绍,我将我封装的方法分享出来
/// <summary>
/// 工程压缩包操作类(利用winrar进行解压,故系统上必须安装winrar)
/// </summary>
public class ZIPPackageOP
{
/// <summary>
/// 解压带密码的压缩包(zip;rar都可)
/// </summary>
/// <param name="zipFilePath">压缩包路径</param>
/// <param name="unZipPath">解压后文件夹的路径</param>
/// <param name="password">压缩包密码</param>
/// <returns></returns>
public static bool unZIP(string zipFilePath,string unZipPath,string password)
{
if (!isStallWinrar())
{
MessageBox.Show("本机并未安装WinRAR,请安装该压缩软件!", "温馨提示");
return false;
}
System.Diagnostics.Process Process1 = new System.Diagnostics.Process();
Process1.StartInfo.FileName = "Winrar.exe";
Process1.StartInfo.CreateNoWindow = true;
Process1.StartInfo.Arguments = " x -p" + password+" " + zipFilePath + " " + unZipPath;
Process1.Start();
if (Process1.HasExited)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 判断系统上是否安装winrar
/// </summary>
/// <returns></returns>
public static bool isStallWinrar()
{
RegistryKey the_Reg =
Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe");
return !string.IsNullOrEmpty(the_Reg.GetValue("").ToString());
}
}