有感于滥用多线程之遍历文件目录信息
今天这篇博文,完全是有感而发,不仅仅是经常看到有人求文件夹遍历的代码,主要是,看到有些人写了一些多线程读取的方法,贴到网上供人参考使用,然后真有不少人特意求这种多线程遍历文件目录的方法。看到这个现象,我很无奈。。。真的。
为什么这么说,因为了解传统硬盘工作原理的人,稍微想想,就应该明白,读取某个文件夹下的所有目录信息,单线程比多线程更有优势。
也就是说,多线程遍历文件夹目录信息,根本就是个噱头,毫无实用价值,只会误导初学者。
顺便也查阅了一些关于固态硬盘的资料,基本可以肯定,即使是在固态硬盘上遍历目录信息,多线程也是没有什么意义的。
希望更多人能看到这篇文章,同时也希望更多程序员们,有空也看看硬件原理方面的书,从而写出更多真正优秀高效的代码。
如果我的观点有不对的地方,也请大家提出并讨论指正!
/// <summary>
/// 遍历文件夹及所含文件的递归方法
/// </summary>
/// <param name="list">遍历结果集</param>
/// <param name="path">遍历的目录</param>
public static void GetAllFiles(List<PathInfo> list, string path)
{
//获取目录下的所有的文件的全名
string[] files = Directory.GetFiles(path);
foreach (var f in files)
{//遍历该目录下所有文件
FileInfo fi = new FileInfo(f);
// ... Do something,You know! ...
}
//获取目录下的所有的子文件夹全名
string[] dir = Directory.GetDirectories(path);
foreach (var d in dir)
{//遍历该目录下所有文件夹
// ... Do something,You know! ...
GetAllFiles(list, d);
}
}
浙公网安备 33010602011771号