在.NET 4.0中计算文件夹文件的最快方法

时间:2011-01-21 21:35:39

标签: .net-4.0 file

我需要计算.NET 4中文件夹中的文件数: 计数将返回文件夹中除.db文件以外的所有文件的编号。

选项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

我应该使用其他更简单但更好的方法(使用RegEx或其他方法)吗?

修改 我应该保留.db文件还是有用的?我所知道的只是文件夹内容的数据库(缓存)。

这会弄乱我的档案数量。

感谢阅读。

2 个答案:

答案 0 :(得分:0)

结果转换为可查询对象。然后查询* .db项目。

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

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

我采用了一些语法shorcuts。这在句法上可能不完全正确。

答案 1 :(得分:-1)

new DirectoryInfo(strPath).EnumerateFiles("*.db").Count();