C#中具有根目录的递归搜索目录
本文关键字:递归 搜索 根目录 | 更新日期: 2023-09-27 17:58:57
如何在不丢失根目录文件的情况下递归遍历目录?
我有下面的函数,它递归地搜索目录中的所有文件,,但它不列出根目录中的文件
public static void ShowFiles(string dirpath)
{
try
{
foreach (string d in Directory.GetDirectories(dirpath))
{
foreach (string f in Directory.GetFiles(d))
{
Console.WriteLine(f);
}
ShowFiles(d);
}
}
有人能指导我如何修改它以列出根目录中的文件吗?
将列出文件的代码移动到顶层,即递归处理目录的循环之外。
foreach (string f in Directory.GetFiles(dirpath)) {
Console.WriteLine(f);
}
foreach (string d in Directory.GetDirectories(dirpath)) {
ShowFiles(d);
}
不要忘记catch
您的try
首先,枚举当前目录中的文件,然后对其子目录重复该方法。
public static void ShowFiles(string dirpath)
{
Console.WriteLine(String.Format("Files in {0}:", dirpath));
try
{
foreach (string f in Directory.GetFiles(dirpath))
{
Console.WriteLine(''t' + f);
}
foreach (string d in Directory.GetDirectories(dirpath))
{
ShowFiles(d);
}
}
catch (Exception e)
{
// do something with e
}
}