C# 递归查找树状目录实现方法


在C#中,递归查找树状目录(文件系统)是一个常见的任务,通常用于遍历文件系统中的所有目录和子目录。以下是一个简单的示例,展示了如何使用C#中的`System.IO`命名空间中的`Directory`和`DirectoryInfo`类来实现这一功能。


using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 指定起始目录
        string startPath = @"C:\YourDirectoryPath";

        // 调用递归函数
        TraverseDirectory(startPath);
    }

    static void TraverseDirectory(string path)
    {
        try
        {
            // 获取指定路径的DirectoryInfo对象
            DirectoryInfo dirInfo = new DirectoryInfo(path);

            // 获取当前目录中的子目录
            DirectoryInfo[] dirs = dirInfo.GetDirectories();

            // 遍历每个子目录
            foreach (DirectoryInfo dir in dirs)
            {
                // 打印目录名称
                Console.WriteLine("Directory: " + dir.Name);

                // 递归调用,遍历子目录
                TraverseDirectory(dir.FullName);
            }

            // 如果需要,也可以在这里处理文件
            // FileInfo[] files = dirInfo.GetFiles();
            // ...

        }
        catch (Exception ex)
        {
            // 处理可能出现的异常,例如权限问题
            Console.WriteLine("An error occurred: " + ex.Message);
        }
    }
}

请注意,这个示例代码仅展示了如何递归遍历目录。在实际应用中,你可能还需要处理文件(如示例中的注释部分所示),或者根据具体需求调整异常处理逻辑。

此外,`@"C:\YourDirectoryPath"`应替换为你想要遍历的起始目录路径。如果路径中包含空格或特殊字符,请确保使用`@`前缀来定义字符串字面量,或者对路径中的特殊字符进行转义。