首页 新闻 搜索 专区 学院

调用winrar解压问题提示“系统找不到指定的文件。”

0
悬赏园豆:15 [待解决问题]

/// <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 = @"C:\Program Files\WinRAR\WinRAR.exe";
//regkey.Close();
rarexe = rarexe.Substring(1, rarexe.Length - 7);
Directory.CreateDirectory(path);
//解压缩命令,相当于在要压缩文件(rarName)上点右键 ->WinRAR->解压到当前文件夹
cmd = string.Format("x {0} {1} -y -ibck", 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;
}

这个是代码。

不知道是参数的问题还是  别的问题

先问后学的主页 先问后学 | 初学一级 | 园豆:127
提问于:2014-10-15 17:15
< >
分享
所有回答(1)
0

听红军革命前辈提过,在Visual Studio中,有个功能叫单步调试,不知道现在是否还保留了这个光荣的传统。

还是已经失传于江湖了。

爱编程的大叔 | 园豆:30753 (高人七级) | 2014-10-15 17:32

调试了还是找不到错误原因。

支持(0) 反对(0) 先问后学 | 园豆:127 (初学一级) | 2014-10-15 17:32

@先问后学: 你总该知道是哪一行出的错吧?

Directory.CreateDirectory(path); 这行之前可以加一个判断语句File.Exist(path)。

你这个错误信息很明显,就是找不到文件或是文件路径。

代码就那么几行,你在需要创建路径或是打开文件之类的语句加个判断。

如果都没有错,那就是传递给WINRAR的参数格式不对,从而导致WINRAR认为你传的文件是不存在的。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30753 (高人七级) | 2014-10-15 17:37

@爱编程的大叔:  嗯目录的已经创建成功了。我猜可能是路径的问题我用的是本地物理路径

支持(0) 反对(0) 先问后学 | 园豆:127 (初学一级) | 2014-10-15 17:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册