Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 특정 경로의 모든 디렉터리와 하위 디렉터리를 가져오는 방법

C#에서는 Directory.GetDirectories 메서드를 사용하여 지정된 경로 내의 디렉터리 목록을 손쉽게 조회할 수 있습니다. 이 메서드는 지정된 디렉터리에서 검색 패턴과 일치하는 하위 디렉터리의 이름(전체 경로 포함)을 반환하며, 옵션 설정에 따라 하위 디렉터리까지 재귀적으로 탐색할 수도 있습니다.

검색 패턴에서 별표(*)는 해당 위치에 0개 이상의 임의 문자가 올 수 있음을 의미합니다. 또한 SearchOption 열거형으로 검색 범위를 지정할 수 있는데, SearchOption.TopDirectoryOnly는 최상위 디렉터리만 조회하고, SearchOption.AllDirectories는 최상위 디렉터리와 그 아래의 모든 하위 디렉터리를 함께 조회합니다.

참고: 예제 코드의 rootPath는 실제 시스템 환경에 따라 달라집니다. 테스트용 폴더를 직접 생성한 후, 해당 폴더의 실제 경로를 rootPath에 지정하여 실행하세요.

예제 1 – 최상위 디렉터리만 조회하기

static void Main(string[] args) {
    string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
    string[] dirs = Directory.GetDirectories(rootPath, "*", SearchOption.TopDirectoryOnly);

    foreach (string dir in dirs) {
        Console.WriteLine(dir);
    }
    Console.ReadLine();
}

실행 결과

C:\Users\Koushik\Desktop\TestFolder\TestFolderMain
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 1
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2

위 예제에서는 TopDirectoryOnly 옵션을 사용했기 때문에 TestFolder 바로 아래에 있는 디렉터리들만 출력됩니다.

예제 2 – 모든 하위 디렉터리까지 조회하기

static void Main(string[] args) {
    string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
    string[] dirs = Directory.GetDirectories(rootPath, "*", SearchOption.AllDirectories);

    foreach (string dir in dirs) {
        Console.WriteLine(dir);
    }
    Console.ReadLine();
}

실행 결과

C:\Users\Koushik\Desktop\TestFolder\TestFolderMain
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 1
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2\TestFolderMainSubDirectory

이번에는 AllDirectories 옵션을 사용했기 때문에 하위 디렉터리인 TestFolderMainSubDirectory까지 모두 포함되어 출력되는 것을 확인할 수 있습니다.