2016-03-25 112 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()方法