C#利用WinRAR实现压缩和解压缩
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
using
System; using
Microsoft.Win32; using
System.Diagnostics; using
System.IO;
namespace MSCL { ///
<summary> ///
压缩解压类 ///
</summary> public class ZipHelper {
/// <summary>
/// 利用 WinRAR 进行压缩
/// </summary> /// <param
name="path">将要被压缩的文件夹(绝对路径)</param>
/// <param
name="rarPath">压缩后的 .rar 的存放目录(绝对路径)</param>
/// <param
name="rarName">压缩文件的名称(包括后缀)</param>
/// <returns>true 或 false。压缩成功返回 true,反之,false。</returns>
public bool RAR(string path,
string rarPath, string rarName)
{
bool flag = false;
string rarexe;
//WinRAR.exe 的完整路径
RegistryKey regkey; //注册表键
Object regvalue; //键值
string cmd;
//WinRAR 命令参数
ProcessStartInfo startinfo;
Process process;
try
{ regkey =
Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\shell\open\command"); regvalue = regkey.GetValue("WinRAR"); // 键值为 "d:\Program Files\WinRAR\WinRAR.exe" "%1" rarexe = regvalue.ToString(); regkey.Close(); rarexe = rarexe.Substring(1,
rarexe.Length - 7); // d:\Program Files\WinRAR\WinRAR.exe
Directory.CreateDirectory(path); //压缩命令,相当于在要压缩的文件夹(path)上点右键->WinRAR->添加到压缩文件->输入压缩文件名(rarName) cmd = string.Format("a {0} {1} -r", rarName, path); startinfo = new
ProcessStartInfo(); startinfo.FileName = rarexe; startinfo.Arguments = cmd; //设置命令参数 startinfo.WindowStyle =
ProcessWindowStyle.Hidden; //隐藏 WinRAR 窗口
startinfo.WorkingDirectory =
rarPath; process = new
Process(); process.StartInfo = startinfo; process.Start(); process.WaitForExit(); //无限期等待进程 winrar.exe 退出 if
(process.HasExited) { flag = true; } process.Close();
}
catch (Exception e)
{ throw e;
}
return flag;
}
/// <summary>
/// 利用 WinRAR 进行解压缩
/// </summary>
/// <param
name="path">文件解压路径(绝对)</param>
/// <param
name="rarPath">将要解压缩的 .rar 文件的存放目录(绝对路径)</param>
/// <param
name="rarName">将要解压缩的 .rar 文件名(包括后缀)</param>
/// <returns>true 或 false。解压缩成功返回 true,反之,false。</returns>
public bool UnRAR(string path,
string rarPath, string rarName)
{
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);
Directory.CreateDirectory(path); //解压缩命令,相当于在要压缩文件(rarName)上点右键->WinRAR->解压到当前文件夹 cmd = string.Format("x {0} {1} -y", rarName, path); startinfo = new
ProcessStartInfo(); startinfo.FileName = rarexe; startinfo.Arguments = cmd; startinfo.WindowStyle =
ProcessWindowStyle.Hidden;
startinfo.WorkingDirectory =
rarPath;
process = new
Process(); process.StartInfo = startinfo; process.Start(); process.WaitForExit(); if
(process.HasExited) { flag = true; } process.Close();
}
catch (Exception e)
{ throw e;
}
return flag;
} } } 该文章在 2021/5/31 8:29:50 编辑过 |
关键字查询
相关文章
正在查询... |