c# 遍历文件夹下所有文件夹
时间: 2024-10-06 21:02:09 浏览: 16
在 C# 中,遍历文件夹下的所有文件夹通常通过递归的方式来实现,因为文件系统可能会包含嵌套的子目录。这里有一个简单的示例,展示了如何使用 `Directory` 和 `FileInfo` 类来完成这个任务:
```csharp
using System;
using System.IO;
public static void TraverseDirectories(string rootPath)
{
try
{
if (Directory.Exists(rootPath))
{
DirectoryInfo directory = new DirectoryInfo(rootPath);
foreach (DirectoryInfo subDirectory in directory.GetDirectories())
{
Console.WriteLine($"现在正在处理目录: {subDirectory.FullName}");
// 对每个子目录递归调用此函数
TraverseDirectories(subDirectory.FullName);
}
foreach (FileInfo fileInfo in directory.GetFiles())
{
Console.WriteLine($"找到文件: {fileInfo.FullName}");
}
}
else
{
Console.WriteLine($"{rootPath} 不是一个有效的目录路径.");
}
}
catch (Exception ex)
{
Console.WriteLine($"遇到错误: {ex.Message}");
}
}
// 调用函数时传入根目录路径
TraverseDirectories(@"C:\example\path");
```
在这个例子中,我们首先检查指定的路径是否真实存在,然后获取 `DirectoryInfo` 对象,接着使用 `GetDirectories()` 获取所有子目录,并对它们递归地调用 `TraverseDirectories()`。同时,我们也打印出找到的所有文件。