C# 我想用c“like”获取listview中的所有多个文件;ppt、docx和txxt,但我一次只能得到一个”;
它确实有效,但不能满足我的需要C# 我想用c“like”获取listview中的所有多个文件;ppt、docx和txxt,但我一次只能得到一个”;,c#,C#,它确实有效,但不能满足我的需要 private void button2_Click(object sender, EventArgs e) { listView1.Items.Clear(); if (textBox1.Text != "") { List<string> files = new List<string>(); files = Directory.GetFiles(textBox1.Text, "*
private void button2_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
if (textBox1.Text != "")
{
List<string> files = new List<string>();
files = Directory.GetFiles(textBox1.Text, "*.txt,*.ppt").ToList();
progressBar1.Maximum = files.Count;
progressBar1.Value = 0;
ListViewItem it;
foreach (var file in files)
{
it = new ListViewItem(file.ToString());
it.SubItems.Add(System.IO.Path.GetFileName(file.ToString()));
it.SubItems.Add(System.IO.Path.GetExtension(file.ToString()));
listView1.Items.Add(it);
progressBar1.Increment(1);
}
}
else
MessageBox.Show("Select directory first");
}
private void按钮2\u单击(对象发送者,事件参数e)
{
listView1.Items.Clear();
如果(textBox1.Text!=“”)
{
列表文件=新列表();
files=Directory.GetFiles(textBox1.Text,“*.txt,*.ppt”).ToList();
progressBar1.max=files.Count;
progressBar1.值=0;
ListViewItemIt;
foreach(文件中的var文件)
{
它=新的ListViewItem(file.ToString());
添加(System.IO.Path.GetFileName(file.ToString());
添加(System.IO.Path.GetExtension(file.ToString());
listView1.Items.Add(it);
1.增量(1);
}
}
其他的
MessageBox.Show(“首先选择目录”);
}
GetFiles不接受多个扩展名
您的:files=Directory.GetFiles(textBox1.Text,“*.txt,*.ppt”).ToList()代码>
会来的
String[] extensions= new String[] {"txt","ppt"};
foreach (String extension in extensions)
files.AddRange(Directory.GetFiles(textBox1.Text, "*."+extension));
这将为您提供结果。与多次调用GetfFiles
相比,您还可以在文件上迭代一次并检查扩展名:
var extentions[] = {".txt", ".ppt"};
var all_files = Directory.EnumerateFiles(@"C:\Directory");
foreach (string current_file in all_files)
{
foreach (var ext in extensions)
{
if (current_file.EndsWith(ext)
{
// do what you need
}
}
}
您还可以包含单步遍历子目录的代码