2010-07-20 4 views

답변

3

: 매우 느릴 것

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

참고.
.Net 4.0에서는 GetDirectoriesEnumerateDirectories으로 변경하면 훨씬 빠르게 만들 수 있습니다.

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; 
     } 
    } 
} 
관련 문제