在文件path中使用通配符searchc#

我正在尝试使用通配符search来search我的桌面上任何以单词test结尾的内容。

我有这个(ExcelToDataTable)需要一个string作为参数:

 ExcelToDataTable(@"C:\Users\name\Desktop\*test.xls"); 

然后,我有我的方法,用我试图从名为test的表中拉入的数据做一些事情:

 public static DataTable ExcelToDataTable(string filePath) { DataTable dt = new DataTable(); using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { } } 

所以我的问题是,用我提供的例子,有没有办法使用通配符,并将其馈入我的ExcelToDataTable方法? 我想find我的桌面上的每个.xls文件在最后有单词test

谢谢

我会创build一个新的方法,“接受一个目录path的一层”,find所有的xls文件,并将它们传递给列表中的方法。

  public static List<DataTable> ProcessDataTables(string dirPath) { xlsFiles = System.IO.Directory.GetFiles(dirPath, "*test.xls") var results = new List<DataTable> foreach(var file in xlsFiles) results.Append(ExcelToDataTable(file)) return results } 

你应该考虑在那里进行一些理智检查(比如检查dirPath实际上是一个存在的目录的path,任何调用这个的目录都可以用一个空列表作为返回值,以防xls文件不存在等)。

一般来说,最好使用Environment.SpecialFolder.Desktop而不是硬编码“你的”桌面。

你可以做下面的例子让我说我想find以.jpg and .txt结尾的文件我可以做到以下几点

 var fi = new System.IO.DirectoryInfo(sDir).GetFiles(). Where(f => !(f.FullName.EndsWith(".jpg") || f.Name.EndsWith(".txt"))).ToArray(); 

在你的情况下,如果你正在寻找以.text ext结尾的文件,请执行以下操作

 var fi = new System.IO.DirectoryInfo(sDir).GetFiles(). Where(f => !(f.FullName.EndsWith(".text") || f.Name.EndsWith(".Text"))).ToArray(); 

你也可以在C# Linq Directory.EnumerateFiles()方法下面做一个Googlesearch