2014年7月10日 星期四
使用 DirectoryInfo().Getfiles("*.xls") 會將 *.xlsx 列出來 ???
今天有朋友問我一個問題,使用 DirectoryInfo().Getfiles("*.xls") ,該目錄中若有檔案為 *.xlsx ,則連 *.xlsx 都會一起 list 出來
寫法如下,一般都是這樣子寫,看起來沒什麼異狀...
DirectoryInfo di = new DirectoryInfo(@"d:\temp");
FileInfo[] files = di.GetFiles("*.xls");
foreach (FileInfo fi in files)
{
string sfullname = fi.FullName;
}
後來改為以下的寫法,用 Where 下檔名的條件就可以解決了...
List<string> sfiles = Directory.GetFiles(@"d:\temp", "*.*").Where(file => file.ToLower().EndsWith("xls")).ToList();
foreach (string file in sfiles)
{
FileInfo fi = new FileInfo(file);
//(.....)
}
舉一反三,若要取得二個以上的副檔名檔案列表呢? Where 條件中加個 || (OR) 條件就好了
List<string> sfiles = Directory.GetFiles(@"d:\temp", "*.*").Where(file => file.ToLower().EndsWith("xls") || file.ToLower().EndsWith("html") ).ToList();
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言