/// <summary>
///
递归获取指定盘符下的所有文件及文件夹
/// 存在部分文件夹
访问权限问题
/// </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)有跳出反复执行过程的条件(递归出口)