1.解压缩
没有发现修改解压缩后文件的名字方法,间接方法用 Directory.Move(filePath, newFilePath);
/// <summary>
/// 利用 WinRAR 进行解压缩
/// </summary>
/// <param name="rarSourceDir">解压文件地址目录</param>
/// <param name="rarSaveDir">将要解压缩的 .rar 文件的存放目录(绝对路径)</param>
/// <param name="rarName">将要解压缩的 .rar 文件名(包括后缀)</param>
/// <param name="password">解压密码</param>
/// <returns>true 或 false。解压缩成功返回 true,反之,false。</returns>
public static bool UnCompressRAR(string rarSourceDir, string rarSaveDir, string rarName,string password)
{
bool flag = false;
string rarExe;
RegistryKey regKey;
Object regValue;
string cmd;
ProcessStartInfo startinfo;
Process process;
try
{
regKey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");
regValue = regKey.GetValue("");
rarExe = regValue.ToString();
regKey.Close();
rarExe = rarExe.Substring(1, rarExe.Length - 7);
if (!Directory.Exists(rarSaveDir))
{
Directory.CreateDirectory(rarSaveDir);
}
//解压缩命令,相当于在要压缩文件(rarName)上点右键 ->WinRAR->解压到当前文件夹
if (password!= "")
{
cmd = string.Format("x -p{0} {1} {2} -y", password, rarName, rarSaveDir);
}
else
{
cmd = string.Format("x {0} {1} -y", rarName, rarSaveDir);
}
startinfo = new ProcessStartInfo();
startinfo.FileName = rarExe;
startinfo.Arguments = cmd;
startinfo.WindowStyle = ProcessWindowStyle.Hidden;
startinfo.WorkingDirectory = rarSourceDir;
process = new Process();
process.StartInfo = startinfo;
process.Start();
process.WaitForExit();
if (process.HasExited)
{
flag = true;
}
process.Close();
}
catch (Exception e)
{
throw e;
}
return flag;
}
/// 利用 WinRAR 进行解压缩
/// </summary>
/// <param name="rarSourceDir">解压文件地址目录</param>
/// <param name="rarSaveDir">将要解压缩的 .rar 文件的存放目录(绝对路径)</param>
/// <param name="rarName">将要解压缩的 .rar 文件名(包括后缀)</param>
/// <param name="password">解压密码</param>
/// <returns>true 或 false。解压缩成功返回 true,反之,false。</returns>
public static bool UnCompressRAR(string rarSourceDir, string rarSaveDir, string rarName,string password)
{
bool flag = false;
string rarExe;
RegistryKey regKey;
Object regValue;
string cmd;
ProcessStartInfo startinfo;
Process process;
try
{
regKey = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command");
regValue = regKey.GetValue("");
rarExe = regValue.ToString();
regKey.Close();
rarExe = rarExe.Substring(1, rarExe.Length - 7);
if (!Directory.Exists(rarSaveDir))
{
Directory.CreateDirectory(rarSaveDir);
}
//解压缩命令,相当于在要压缩文件(rarName)上点右键 ->WinRAR->解压到当前文件夹
if (password!= "")
{
cmd = string.Format("x -p{0} {1} {2} -y", password, rarName, rarSaveDir);
}
else
{
cmd = string.Format("x {0} {1} -y", rarName, rarSaveDir);
}
startinfo = new ProcessStartInfo();
startinfo.FileName = rarExe;
startinfo.Arguments = cmd;
startinfo.WindowStyle = ProcessWindowStyle.Hidden;
startinfo.WorkingDirectory = rarSourceDir;
process = new Process();
process.StartInfo = startinfo;
process.Start();
process.WaitForExit();
if (process.HasExited)
{
flag = true;
}
process.Close();
}
catch (Exception e)
{
throw e;
}
return flag;
}