2016-03-25 75 views
0

我正尝试使用通配符搜索来搜索我的桌面以查找以test这个词结尾的任何内容。在文件路径c中使用通配符搜索#

我有这个(ExcelToDataTable)发生在一个string作为参数:

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法的方式进行?我想找到我的桌面上有字test末每个.xls文件...

感谢

+0

也有EXTE使用linq使用关键词'.EndWith()'函数搜索文件的nsion方法 – MethodMan

回答

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而不是硬编码“您的”桌面。

0

你可以做,例如下面让我们说,我想找到与.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()方法