利用C#调用WINRAR实现压缩与解压
2009-05-14 15:58
716 查看
参考:http://hi.baidu.com/yandavid/blog/item/4f9bc80906b2998ad0581b5c.html
我的UnRAR:
/// <summary>
/// 使用WinRAR解压缩文件
/// </summary>
/// <param name="path">解压文件存储的路径</param>
/// <param name="rarFullName">压缩文件的完整地址</param>
/// <param name="pwd">压缩文件的密码</param>
/// <returns>解压完成返回true,否则返回false</returns>
public int UnRAR(string path, string rarFullName,string pwd)
{
string rarName = rarFullName.Split('//')[rarFullName.Split('//').Length - 1];
string rarPath = rarFullName.Remove(rarFullName.LastIndexOf(rarName) - 1);
int iExitCode=2;
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->解压文件->目标路径(path)
cmd = string.Format("x {0} {1} -y -p{2}",
rarName,
path,pwd);
startinfo = new ProcessStartInfo();
startinfo.FileName = rarexe;
startinfo.Arguments = cmd;
// startinfo.Verb = "open";
//startinfo.WindowStyle = ProcessWindowStyle.Hidden;
startinfo.WorkingDirectory = rarPath;
process = new Process();
process.StartInfo = startinfo;
process.Start();
process.WaitForExit();
if (process.HasExited)
{
iExitCode = process.ExitCode;
}
process.Close();
}
catch (Exception e)
{
throw e;
}
return iExitCode;
}
如果想扩展更多的东西,请参考RAR安装目录下 Rar.txt | ||
限制 ~~~~ 路径名长度小于 259 个字符。 最大的压缩文件注释的长度是62000字节。 命令限制: 命令 'd','u','f','c','cf' 不能用于分卷压缩文件。 命令 'a' 不能用来更新分卷压缩文件,只能用来创建。 返回值 ~~~~~~ RAR 成功操作后返回 0 。非 0 返回码意味着操作由于某种错误被取消: 255 用户中断 用户中断操作 9 创建错误 创建文件错误 8 内存错误 没有足够的内存进行操作 7 用户错误 命令行选项错误 6 打开错误 打开文件错误 5 写错误 写入磁盘错误 4 被锁定压缩文件 试图修改先前使用 'k' 命令锁定的压缩文件 3 CRC 错误 解压缩时发生一个 CRC 错误,当密码不对时返回3 2 致命错误 发生一个致命错误 1 警告 没有发生致命错误 0 成功 操作成功 protected void Button1_Click(object sender, EventArgs e) { string strtxtPath = "C://freezip//free.txt"; string strzipPath = "C://freezip//free.zip"; System.Diagnostics.Process Process1 = new System.Diagnostics.Process(); Process1.StartInfo.FileName = "Winrar.exe"; Process1.StartInfo.CreateNoWindow = true; Process1.StartInfo.Arguments = " a -r " + strzipPath + " " + strtxtPath; Process1.Start(); Process1.WaitForExit(); if (Process1.HasExited) { int iExitCode = Process1.ExitCode; if (iExitCode == 0) { //正常完成 } else { //有错 } } Process1.Close(); } | ||
|
/// <summary>
/// 使用WinRAR解压缩文件
/// </summary>
/// <param name="path">解压文件存储的路径</param>
/// <param name="rarFullName">压缩文件的完整地址</param>
/// <param name="pwd">压缩文件的密码</param>
/// <returns>解压完成返回true,否则返回false</returns>
public int UnRAR(string path, string rarFullName,string pwd)
{
string rarName = rarFullName.Split('//')[rarFullName.Split('//').Length - 1];
string rarPath = rarFullName.Remove(rarFullName.LastIndexOf(rarName) - 1);
int iExitCode=2;
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->解压文件->目标路径(path)
cmd = string.Format("x {0} {1} -y -p{2}",
rarName,
path,pwd);
startinfo = new ProcessStartInfo();
startinfo.FileName = rarexe;
startinfo.Arguments = cmd;
// startinfo.Verb = "open";
//startinfo.WindowStyle = ProcessWindowStyle.Hidden;
startinfo.WorkingDirectory = rarPath;
process = new Process();
process.StartInfo = startinfo;
process.Start();
process.WaitForExit();
if (process.HasExited)
{
iExitCode = process.ExitCode;
}
process.Close();
}
catch (Exception e)
{
throw e;
}
return iExitCode;
}
相关文章推荐
- 利用C#调用WINRAR实现压缩与解压
- 利用C#调用WINRAR实现压缩与解压
- 利用C#调用WINRAR实现压缩与解压
- \t\t利用C#调用WINRAR实现压缩与解压
- 利用C#调用WINRAR实现压缩与解压
- 利用C#调用WINRAR实现压缩与解压
- 利用C#调用WINRAR实现压缩与解压
- 利用C#调用WINRAR实现压缩与解压
- 利用VC调用WinRAR解压和压缩文件
- WinRAR(WinZip)压缩与解压实现(C#版Window平台)
- C#调用WinRAR实现压缩与解压缩
- JAVA利用cmd命令行调用WINRAR解压及压缩
- WinRAR(WinZip)压缩与解压实现(C#版Window平台)
- 利用VC调用WinRAR解压和压缩文件
- WinRAR(WinZip)压缩与解压实现(C#版Window平台)
- WinRAR(WinZip)压缩与解压实现(C#版Window平台)
- c# 调用WinRAR压缩,解压
- C#调用WinRAR实现压缩与解压缩
- c# 调用 WinRAR 实现文件压缩、文件解压,WinRAR命令行参数,不弹窗
- C#使用SharpZipLib压缩和解压文件3/3调用实现压缩和解压