我有一个非常基本的WinForms应用程序,用于搜索用户选择的指定文件夹中的文件数。选择文件夹后,文件夹中将指定此文件夹中的文件数。我的部分代码如下所示:
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
txbNumberOfFiles.Text = files.Length.ToString();
现在这个工作正常,它会在找到所有文件后显示文本框中的文件数。但是,我想要的是文本框,以便在数组大小增加时显示数组的索引。所以它先是1然后是2然后是3等等。然后一旦处理完成,最后一个数字将是找到的文件总数。
任何帮助将不胜感激!
答案 0 :(得分:2)
您可以将foreach
与计数器变量一起使用。这是解决方案之一,但不是最好的
folderBrowserDialog1.ShowDialog();
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
int count = 1;
foreach (var item in files)
{
textBox1.Text = textBox1.Text + " " + count.ToString();
count++;
}
答案 1 :(得分:0)
使用此
textboxControl.Text = String.Join(" ", Enumerable.Range(1, files.Length));
对于files.Length
= 10,它将生成
1 2 3 4 5 6 7 8 9 10
答案 2 :(得分:0)
如果我理解正确,你可以使用这样的东西:
首先添加一个Timer:
Timer tm = new Timer(); // define in it class level,in the top of your code
在表单中加载设置属性:
tm.Enabled = true;
tm.Interval = 1000;
tm.Tick += timer1_Tick;
处理Tick事件:
private int i = 0;
private void timer1_Tick(object sender, EventArgs e)
{
textBox1.Text = String.Format("File {0}: {1}", i+1, files[i]);
i++;
if (i == files.Length)
{
textBox1.Text == "Total Files: " + i;
tm.Stop();
}
}
然后当您加载文件时启动计时器:
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
tm.Start();