【发布时间】:2016-02-05 17:10:04
【问题描述】:
现在我正在报告我正在搜索的每个文件名,它工作正常。 但现在我还想向我在设计器中的progressBar1 报告进度百分比。计算还应包括程序是否进入 while 循环。我添加了一个 counterFiles 变量,但不知道怎么做。
我有这个方法:
public List<string> FindLines(string DirName, string TextToSearch)
{
int countFiles = 0;
int counter = 0;
List<string> findLines = new List<string>();
DirectoryInfo di = new DirectoryInfo(DirName);
if (di != null && di.Exists)
{
if (CheckFileForAccess(DirName) == true)
{
foreach (FileInfo fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
{
if (string.Compare(fi.Extension, ".cs", true) == 0)
{
countFiles++;
//countFiles /
backgroundWorker1.ReportProgress(0, fi.Name);
System.Threading.Thread.Sleep(200);
using (StreamReader sr = fi.OpenText())
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
if (s.Contains(TextToSearch))
{
counter++;
findLines.Add(s);
}
}
}
}
}
}
}
return findLines;
}
在后台worker dowork 和progresschanged 事件中
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
FindLines(@"d:\c-sharp", "string s1 = treeView1.SelectedNode.Tag as string;");
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
label2.Text = e.UserState.ToString();
}
【问题讨论】:
-
你试过谷歌搜索progressbar和progressStatus后台worker吗..stackoverflow.com/questions/13874122/…
-
我知道计算进度 * 总数 / 100 的公式问题是我如何知道代码中的总数?在您提供的链接中,用户知道文件的数量,但是我如何找到代码中的目录总数?
-
有几个项目可以显示您正在寻找的内容,
CodeProject网站上有一个.. 谷歌搜索C# CodeProject backgroundworker progressbar