有感于滥用多线程之遍历文件目录信息

今天这篇博文,完全是有感而发,不仅仅是经常看到有人求文件夹遍历的代码,主要是,看到有些人写了一些多线程读取的方法,贴到网上供人参考使用,然后真有不少人特意求这种多线程遍历文件目录的方法。看到这个现象,我很无奈。。。真的。

为什么这么说,因为了解传统硬盘工作原理的人,稍微想想,就应该明白,读取某个文件夹下的所有目录信息,单线程比多线程更有优势。

也就是说,多线程遍历文件夹目录信息,根本就是个噱头,毫无实用价值,只会误导初学者。

顺便也查阅了一些关于固态硬盘的资料,基本可以肯定,即使是在固态硬盘上遍历目录信息,多线程也是没有什么意义的。

希望更多人能看到这篇文章,同时也希望更多程序员们,有空也看看硬件原理方面的书,从而写出更多真正优秀高效的代码。

如果我的观点有不对的地方,也请大家提出并讨论指正!


        /// <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);
            }
        }  


原文地址:https://www.cnblogs.com/foren/p/6009102.html