0
如何在VB.NET中检索驱动器中所有文件夹的列表?如何获取驱动器中的所有文件夹?
如何在VB.NET中检索驱动器中所有文件夹的列表?如何获取驱动器中的所有文件夹?
像这样:
Directory.GetDirectories("C:\", "*", SearchOption.AllDirectories)
注意,这将是非常缓慢的。
在.Net 4.0中,通过将GetDirectories
更改为EnumerateDirectories
可以使其更快。
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;
}
}
}