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;
}