2011-01-21 85 views
0

我需要計算.NET 4文件夾中文件的數量: 計數將返回除文件夾中的.db文件以外的所有文件的數量。在.NET 4.0中計算文件夾文件的最快方法

選項1:

IEnumerable<string> enumerables = Directory.EnumerateFiles(strPath, "*.*", SearchOption.TopDirectoryOnly); 
int iNumFiles = 0; 
foreach (string f in enumerables) 
{ 
    if (!f.EndsWith(".db")) 
     iNumFiles++; 
} 

//iNumFiles is the count 

選項2:

int iNumFiles = 0; 
IEnumerable<string> enumerables1 = Directory.EnumerateFiles(strPath, "*.*", SearchOption.TopDirectoryOnly); 
IEnumerable<string> enumerables2 = Directory.EnumerateFiles(strPath, "*.db", SearchOption.TopDirectoryOnly); 

iNumFiles = enumerables1.Count() - enumerables2.Count(); 

//iNumFiles is the count 

是否有任何其他簡單,但更好的方法(使用正則表達式或別的東西),我應該使用?

編輯: 我應該保持.db文件或它是多麼有用嗎?我所知道的是文件夾內容的數據庫(緩存)。

這搞亂了我的文件數量。

感謝您的閱讀。

回答

-1
new DirectoryInfo(strPath).EnumerateFiles("*.db").Count(); 
+0

他需要沒有.db擴展名的文件數。 – 2011-01-21 21:40:38

+0

返回`* .db`文件的數量。 OP需要非`* .db`文件的數量。 – delnan 2011-01-21 21:41:41

0

打開結果轉換爲可查詢對象。然後查詢* .db項目。

var queryObject = My.Computer.FileSystem.getFiles(foldername, FileIO.SearchOption.SearchTopLevelOnly, "*.*").AsQueryable();

var filesIcareAbout = queryObject.where(f => right(f,3) != ".db");

我花了一些語法shorcuts。這在句法上可能不完全正確。

相關問題