我在控制台应用程序中列出所有目录,但它需要永远,超过10分钟(假设在这里,可能需要超过10分钟),我知道有很多目录,但是超过10分钟太长开始?
class Program
{
static void Main(string[] args)
{
DirSearch(@"c:\");
Console.ReadKey();
}
static void DirSearch(string sDir)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
Console.WriteLine(d);
DirSearch(d);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Bro*_*ass 10
是的 - 不要手动递归.这是内置的,您可以使用它SearchOption.AllDirectories来包含搜索中的所有子目录:
foreach (string d in Directory.GetDirectories(sDir, "*.*", SearchOption.AllDirectories))
{
Console.WriteLine(d);
}
Run Code Online (Sandbox Code Playgroud)
或者使用Directory.EnumerateDirectories它在找到目录名时产生目录名,而不是首先将它们全部放在数组中:
foreach (string d in Directory.EnumerateDirectories(sDir, "*.*", SearchOption.AllDirectories))
{
Console.WriteLine(d);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |