繁体   English   中英

迭代文件结构时更新进度条

[英]Update progress bar while iterating file structure

我使用这个函数来搜索所选目录中的所有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 { }
    }
}

如何根据找到的文件数更新进度条状态?

关键是你不知道你会发现的exe文件总数(也就是100%)所以基本上你不能渲染进度条! 对于这种任务,它更适合沙漏或大帐篷吧......

您可能希望搜索并最后将进度条设置为找到的文件数。

您可以指定一个计数器,将值a =分配给找到的文件#然后设置

progressBar.Maximum = a;

也许我在这里遗漏了一些东西,但为什么不将进度条的最大值分配给pending.Count并在每次处理文件时将进度条的值加1?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM