在文件路径c#中使用通配符搜索

时间:2016-03-25 18:49:07

标签: c# excel datatable wildcard

我正在尝试使用通配符搜索,在桌面上搜索以start = time.time() # some code goes here end = time.time() spent = end - start time.sleep(1.0101 - spent) # this gives a strange IOError... 结尾的任何内容。

我有这个(ExcelToDataTable)接受test作为参数:

string

然后我的方法用我试图从test命名的表中提取的数据做了一些事情:

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

所以我的问题是,在我提供的示例中,有没有办法使用通配符并将其提供到我的public static DataTable ExcelToDataTable(string filePath) { DataTable dt = new DataTable(); using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { } } 方法中?我想在我的桌面上找到最后有ExcelToDataTable字样的每个.xls文件...

由于

2 个答案:

答案 0 :(得分:2)

我会制作一种新方法,"一级升级"接受目录路径,查找其中的所有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实际上是一个存在的目录的路径,调用它的任何东西都可以,如果没有xls文件,则将空列表作为返回值存在等等。)

一般来说,使用Environment.SpecialFolder.Desktop代替硬编码&#34;您的&#34;也是最佳做法。桌面。

答案 1 :(得分:0)

您可以执行以下操作,例如我可以说我想找到以.jpg and .txt结尾的文件我可以执行以下操作

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

如果您要查找以.text分机结尾的文件,请执行以下操作

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

您还可以对以下C# Linq Directory.EnumerateFiles()方法

进行Google搜索