2011-01-21 84 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。这在句法上可能不完全正确。

相关问题