C#으로 디렉터리 내 파일 검색하기
C#에서는 DirectoryInfo 클래스를 활용하면 특정 디렉터리에 있는 파일 목록을 손쉽게 검색하고, 각 파일의 이름과 크기 등의 정보를 확인할 수 있습니다. 이번 글에서는 실제 예제 코드를 통해 파일 검색 과정을 단계별로 살펴보겠습니다.
전체 예제 코드
디렉터리의 파일 목록을 검색하려면 다음과 같은 코드를 실행해 보세요.
using System;
using System.IO;
namespace Demo {
class Program {
static void Main(string[] args) {
// DirectoryInfo 객체 생성
DirectoryInfo mydir = new DirectoryInfo(@"d:\amit");
// 디렉터리 내 파일 목록 가져오기 (이름과 크기 포함)
FileInfo[] f = mydir.GetFiles();
foreach (FileInfo file in f) {
Console.WriteLine("File Name: {0} Size: {1}", file.Name, file.Length);
}
Console.ReadKey();
}
}
}코드 설명
먼저, 검색할 대상 디렉터리 경로를 지정하여 DirectoryInfo 객체를 생성합니다. 문자열 앞에 붙은 @ 기호는 이스케이프 문자 처리를 생략하여 경로를 그대로 사용할 수 있게 해줍니다.
DirectoryInfo mydir = new DirectoryInfo(@"d:\amit");
다음으로 GetFiles() 메서드를 호출하면 해당 디렉터리에 있는 모든 파일 정보를 FileInfo 배열 형태로 반환받습니다. 이후 foreach 반복문을 사용해 각 파일의 이름(Name)과 크기(Length)를 콘솔에 출력합니다.
FileInfo[] f = mydir.GetFiles();
foreach (FileInfo file in f) {
Console.WriteLine("File Name: {0} Size: {1}", file.Name, file.Length);
}실행 결과
위 코드를 실행하면 다음과 같이 파일 이름과 크기가 출력됩니다.
File Name: Info.txt : Size: 2kb File Name: New.html : Size: 10kb
마무리
이처럼 C#의 System.IO 네임스페이스에 포함된 DirectoryInfo와 FileInfo 클래스를 활용하면 별도의 복잡한 로직 없이도 디렉터리 내 파일을 간편하게 검색하고 관련 정보를 조회할 수 있습니다. 특정 확장자만 검색하고 싶다면 GetFiles("*.txt")처럼 검색 패턴을 인자로 전달하는 방법도 활용해 보세요.