在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"`应替换为你想要遍历的起始目录路径。如果路径中包含空格或特殊字符,请确保使用`@`前缀来定义字符串字面量,或者对路径中的特殊字符进行转义。