如何获取驱动器中的所有文件夹?

时间:2010-07-20 19:37:25

标签: vb.net

如何在VB.NET中检索驱动器中所有文件夹的列表?

2 个答案:

答案 0 :(得分:3)

像这样:

Directory.GetDirectories("C:\", "*", SearchOption.AllDirectories)

请注意,它会非常慢 在.Net 4.0中,您可以通过将GetDirectories更改为EnumerateDirectories来加快速度。

答案 1 :(得分:1)

SLaks's answer是显而易见的方法。

如果你没有.NET 4.0,但你也想稍微缓解这种缓慢,你可以编写自己的递归函数来开始以递归的方式缓慢地枚举这些目录。

static IEnumerable<DirectoryInfo> GetAllDirectories(DirectoryInfo directory)
{
    DirectoryInfo[] directories = directory.GetDirectories();
    if (directories.Length == 0)
        yield break;

    foreach (DirectoryInfo subdirectory in directories)
    {
        yield return subdirectory;
        foreach (DirectoryInfo subsubdirectory in GetAllDirectories(subdirectory))
        {
            yield return subsubdirectory;
        }
    }
}