在项目中大家肯定偶尔会有遍历文件夹的需求,还在老老实实写递归么?!那怕是骚一点的linq递归,其实都太麻烦了,微软爸爸早就想到我们有这样的需求,直接在框架内部已经实现好了。
遍历文件夹其实只需要一个函数就搞定了,都不用去考虑递归,真的太 弓虽 了。
var files = Directory.GetFiles(@"C:\", "*.*",SearchOption.AllDirectories); // 遍历所有文件
var dirs= Directory.GetDirectories(@"C:\", "*", SearchOption.AllDirectories); //遍历所有文件夹
其中第三个参数SearchOption.AllDirectories表示搜索本文件夹和所有子目录,很拽吧。
"*.*"也可以是"*",通配符都一样。通配符支持*,?,跟Windows资源管理器套路是一样的,
如果再加一句:
var list=files.Union(dirs).OrderBy(s=>s);
那不就实现了当前文件夹递归的结果包含文件和文件夹的同时遍历了么!
Austin Liu 刘恒辉
Project Manager and Software Designer E-Mail:lzhdim@163.com Blog:https://lzhdim.cnblogs.com 欢迎收藏和转载此博客中的博文,但是请注明出处,给笔者一个与大家交流的空间。谢谢大家。 |