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

C#을 활용한 디렉토리 및 파일 목록 조회 방법

C#의 Directory 클래스는 디렉토리와 하위 디렉토리를 다루는 다양한 메서드를 제공합니다. 이 클래스를 활용하면 폴더 생성, 삭제, 열거 등 파일 시스템 관련 작업을 손쉽게 처리할 수 있습니다.

Directory 클래스의 주요 메서드

번호메서드 및 설명
1CreateDirectory(String)
지정된 경로에 모든 디렉토리와 하위 디렉토리를 생성합니다. 이미 존재하는 경우 새로 만들지 않습니다.
2CreateDirectory(DirectorySecurity, String)
지정된 Windows 보안 설정을 적용하여 해당 경로의 모든 디렉토리를 생성합니다. 이미 존재하는 경우 생성하지 않습니다.
3Delete(String)
지정된 경로에서 빈 디렉토리를 삭제합니다.
4Delete(String, Boolean)
지정된 디렉토리를 삭제하며, 옵션에 따라 하위 디렉토리와 파일까지 함께 삭제할 수 있습니다.
5EnumerateDirectories(String)
지정된 경로 내 디렉토리 이름들의 열거 가능한 컬렉션을 반환합니다.
6EnumerateDirectories(String, String)
지정된 경로에서 검색 패턴과 일치하는 디렉토리 이름들의 열거 가능한 컬렉션을 반환합니다.

디렉토리 이름 가져오기

디렉토리 이름 목록을 얻으려면 EnumerateDirectories 메서드를 사용합니다. 먼저 DirectoryInfo 클래스를 이용해 대상 폴더를 지정합니다.

DirectoryInfo info = new DirectoryInfo(@"D:/new");

폴더 크기 계산하기

폴더 내 모든 파일의 전체 크기를 구하려면 EnumerateFiles 메서드와 LINQ의 Sum을 조합하면 됩니다.

long totalSize = info.EnumerateFiles().Sum(file => file.Length);

하위 디렉토리 열거하기

하위 디렉토리 목록을 확인하려면 다음과 같이 EnumerateDirectories()를 호출합니다.

info.EnumerateDirectories()

이처럼 DirectoryInfo 객체의 EnumerateDirectories 메서드는 지연 평가(lazy evaluation) 방식으로 동작하기 때문에, 대용량 디렉토리를 탐색할 때도 효율적으로 처리할 수 있다는 장점이 있습니다.