【发布时间】:2016-02-14 06:30:29
【问题描述】:
我目前正忙于一个小型 C# 应用程序,它读取一个文件夹,然后动态列出 Windows 窗体上的所有 .rar 文件,每个 .rar 文件旁边都有一个动态进度条。所以基本上只需按下一个按钮,.rar 文件就需要解压缩(winrar 命令行),显示每个进程的进度。
下面是我的流程sn-p
Process proc = new Process();
proc.StartInfo.FileName = @"unrar.exe";
proc.StartInfo.Arguments = FileName + "whatever attributes/switches";
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.OutputDataReceived += new DataReceivedEventHandler(proc_OutputDataReceived);
proc.Start();
proc.BeginOutputReadLine();
proc.WaitForExit();
很难做到这一点。
我们将不胜感激。
【问题讨论】:
-
似乎有什么问题?
-
unrar.exe二进制输出是什么?这显然与确定完成进度有关... -
我无法让进度条与流程一起工作。如果我有例如 5 个 rar 文件,我需要使用它的进度条运行第一个进程,一旦完成,移动到第二个进程等。目前所有进程运行/完成,然后一次显示所有进度条。
-
这是 unrar UNRAR 4.00 beta 4 免费软件的输出 Copyright (c) 1993-2011 Alexander Roshal Extracting from filename.rar Extracting d:\test\test\filename.mp4 0% 1% 2 % 3% 从 filename.r00 ... filename.mp4 中提取 4% 5% 6% 7% 从 filename.r01 ... filename.mp4 中提取 8% 9% 10% ... ... 从文件名.r26 ... 文件名.mp4 98% 99% OK 一切OK
标签: c# process backgroundworker