C# 代码优化:使用进度条提升文件处理效率
要添加一个进度条来显示处理进度,可以使用 'ProgressBar' 控件。以下是修改后的代码,包括添加进度条的部分:
string[] files = Directory.GetFiles(remoteFolder, "*.LOG", SearchOption.AllDirectories);
string SN = textBox1.Text.Trim() + ".LOG";
List<string> matchingFiles = new List<string>();
List<string> matchingFolders = new List<string>();
DateTime currentDate = DateTime.Now;
DateTime startDate = currentDate.AddMonths(-1);
// 设置进度条的最大值为文件总数
progressBar1.Maximum = files.Length;
for (int i = 0; i < files.Length; i++)
{
string file = files[i];
DateTime lastModified = File.GetLastWriteTime(file);
if (Path.GetFileName(file) == SN && lastModified >= startDate && lastModified <= currentDate)
{
matchingFiles.Add(Path.GetFileName(file));
matchingFolders.Add(Path.GetDirectoryName(file));
}
// 更新进度条的值
progressBar1.Value = i + 1;
}
if (matchingFiles.Count > 0)
{
label3.Text = string.Join(Environment.NewLine, matchingFiles);
label4.Text = string.Join(Environment.NewLine, matchingFolders);
}
else
{
label3.Text = "LOG未检测到";
}
// 进度条完成后隐藏
progressBar1.Visible = false;
在这个修改后的代码中,我们首先设置了进度条的最大值为文件总数 'files.Length'。然后,在每次循环迭代时,我们使用 'progressBar1.Value' 属性来更新进度条的值,从而显示处理进度。最后,当处理完成后,我们将进度条隐藏起来。请确保在窗体上添加一个名为 'progressBar1' 的进度条控件,以便代码能够访问并操作它。
原文地址: https://www.cveoy.top/t/topic/izM 著作权归作者所有。请勿转载和采集!