我正在尝试列出扩展名为.TXT的文件,并且也仅将包含“ EUROPE_”的文件显示在列表框中
private void btnDisplay_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
var files = Directory.EnumerateFiles("C:\\temp\\FOLDER", "*.*",
SearchOption.AllDirectories)
.Where(s => s.Contains("*EUROPE*") || s.EndsWith(".TXT"));
}
点击按钮后什么也没显示
答案 0 :(得分:1)
您需要对代码进行一些调整,但这并不是一个不好的开始。
首先,您可以使用内置的通配符仅获取txt文件。然后,您可以使用Where
确定哪个文件包含“欧洲”。之后,您需要将每个文件添加到列表框中。否则,您显然不会看到它们。
private void btnDisplay_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
var files = Directory.EnumerateFiles("C:\\temp\\FOLDER", "*.txt", SearchOption.AllDirectories)
.Where(s => s.ToUpper().Contains("EUROPE"));
foreach(string file in files){
listBox1.Items.Add(file);
}
}
编辑:
您确实也可以使用通配符来检查它是否包含欧洲。在我看来,它也更干净,更易读,因此使用它(当然,除了这一行之外,您还需要其余代码)。请参见this answer,其中仅显示了确切的方法,而没有周围的代码。
答案 1 :(得分:1)
您不必使用where子句。 下面的代码行应该起作用:
var files = Directory.EnumerateFiles("C:\\temp\\FOLDER", "*EUROPE_*.txt", SearchOption.AllDirectories)