/// <summary>
/// 递归获取指定盘符下的所有文件及文件夹
/// 存在部分文件夹访问权限问题
/// </summary>
/// <param name="path">string path = @"G:"; </param>
/// <param name="filter">string filter = "*.mp3";</param>
/// 递归获取指定盘符下的所有文件及文件夹
/// 存在部分文件夹访问权限问题
/// </summary>
/// <param name="path">string path = @"G:"; </param>
/// <param name="filter">string filter = "*.mp3";</param>
- private static void ParseDirectory(string path, string filter)
- {
- //获取目录下所有文件夹路径
- string[] dirs = Directory.GetDirectories(path);
- if (dirs.Length == 0 )
- return;
- IEnumerator iter = dirs.GetEnumerator();
- //遍历当前路径下文件夹路径及文件名
- while (iter.MoveNext())
- {
- string str = (string)(iter.Current);
- ParseDirectory(str, filter);
- }
- //获取指定文件夹中指定的内容
- string[] files = Directory.GetFiles(path, filter);
- if (files.Length > 0)
- {
- m_pathList.Add(files);
- }
- }
递归(recursion):程序调用自身的编程技巧。
递归满足2个条件:
1)有反复执行的过程(调用自身)
2)有跳出反复执行过程的条件(递归出口)