我使用此函数来搜索所选目录中的所有exe文件:
public static IEnumerable<string> GetFiles(string root, string searchPattern)
{
Stack<string> pending = new Stack<string>();
pending.Push(root);
while (pending.Count != 0)
{
var path = pending.Pop();
string[] next = null;
try
{
next = Directory.GetFiles(path, searchPattern);
}
catch { }
if (next != null && next.Length != 0)
foreach (var file in next) yield return file;
try
{
next = Directory.GetDirectories(path);
foreach (var subdir in next) pending.Push(subdir);
}
catch { }
}
}
如何根据找到的文件数更新进度条状态?
答案 0 :(得分:1)
关键是你不知道你会发现的exe文件总数(也就是100%)所以基本上你不能渲染进度条!对于这种任务,它更适合沙漏或大帐篷吧......
答案 1 :(得分:0)
您可能希望搜索并最后将进度条设置为找到的文件数。
您可以指定一个计数器,将值a =分配给找到的文件数,然后设置
progressBar.Maximum = a;
答案 2 :(得分:0)
也许我在这里遗漏了一些东西,但为什么不将进度条的最大值分配给pending.Count
并在每次处理文件时将进度条的值加1?