
记得学习编程时,递归可以说是一种典型的编程思维,一种常见的需求是遍历目录及子目录中的文件。后来工作时发现,其实微软早就帮我们写好了,不用自己老是去写。
var files = Directory.GetFiles(@"D:\", "*.*",SearchOption.AllDirectories); // 遍历所有文件var dirs= Directory.GetDirectories(@"D:\", "*", SearchOption.AllDirectories); //遍历所有文件夹
参数1:文件路径,要搜索的文件目录。
参数2:过滤格式,不填或"*.*"或"*"表示搜索所有格式;支持通配符号,正则表达式,强大!
参数3:搜索选项,SearchOption.TopDirectoryOnly 默认选项,仅包含当前目录;SearchOption.AllDirectories 包含所有子目录。
public static void GetFiles(this string directory,ref List<string> list,string searchPattern="*.*"){if (Directory.Exists(directory)){string[] directories = Directory.GetDirectories(directory, searchPattern, SearchOption.TopDirectoryOnly);string[] files = Directory.GetFiles(directory, searchPattern, SearchOption.TopDirectoryOnly);list.AddRange(files);foreach (string item in directories){if (item.ToLower().EndsWith(".gdb")){list.Add(item);}else{GetFiles(item,ref list);}}}}

本文作者:我也是个傻瓜
作者博客地址:http://www.cnblogs.com/liweis/
转载于:地信论坛
本文仅限行业学习交流之用,版权、著作权归原载平台及作者所有。我们尊重作者的成果,如涉嫌侵权,请联系我们及时删除。
- END -

