C# 프로그램을 개발하다 보면 특정 폴더의 파일 목록을 가져오거나 필요한 파일을 가져와서 처리해야 하는 경우가 가끔 생기게 됩니다.
또는 지정한 폴더(디렉터리)에 있는 모든 파일을 가져오거나 하위 폴더까지 포함해서 파일을 검색해서 원하는 파일을 가져오는 로직을 구현하는 일이 생기기도 합니다.
이전에 작성한 글에서 파일을 만들고, 텍스트를 쓰고 추가하는 방법에 대해 설명한 적이 있습니다.
그리고 텍스트 파일을 내용을 읽는 다양한 방법에 대해서도 설명한 적이 있습니다. 두 글은 아래 참고할 만한 다른 포스팅 링크 목록에서 열어 볼 수 있습니다.
이번 글에서는 C#에서 폴더(디렉터리)에 있는 파일을 검색해서 가져오는 2가지 방법에 대해 알아보겠습니다.
C#에서 DirectoryInfo를 사용하여 폴더(디렉터리)에 있는 파일을 가져오기
C#에서 디렉터리(폴더)에 있는 파일을 가져오는 가장 일반적인 사용 방법입니다.
DirectoryInfo를 사용하여 디렉터리의 정보를 가져오고 GetFiles를 사용하여 해당 디렉터리의 파일을 가져오는 방식입니다.
디렉터리에 들어 있는 하위 디렉터리(Sub Directory)를 가져오는 방법은 GetDirectories를 사용하면 됩니다.
패턴(SearchPattern)과 옵션(SearchOption)을 사용하여 원하는 파일만 가져올 수 있습니다.
if (!Directory.Exists(@“C:\Temp\”))
{
Console.WriteLine(“디렉터리가 존재하지 않음”);
return;
}
DirectoryInfo dir = new DirectoryInfo(@“C:\Temp\”);
// 현재 디렉터리에 있는 모든 파일을 가져옴
foreach (FileInfo file in dir.GetFiles())
{
Console.WriteLine(file);
}
// 하위 디렉터리를 가져옴
foreach (DirectoryInfo subDir in dir.GetDirectories())
{
Console.WriteLine(subDir);
}
// 하위 디렉터리를 포함해서 지정된 확장자의 모든 파일을 가져옴
FileInfo[] files = dir.GetFiles(“*.txt”, SearchOption.AllDirectories);
foreach (FileInfo file in files)
{
Console.WriteLine(file);
}
|
C#에서 Directory.EnumerateFiles를 사용하여 디렉터리에 있는 파일을 가져오기
C#에서 디렉터리 내의 파일을 가져오는 또 다른 방법은 Directory.EnumerateFiles를 사용하는 방법입니다.
패턴(SearchPattern)과 옵션(SearchOption)을 사용하여 원하는 파일만 가져올 수 있습니다.
// 하위 디렉터리까지 포함해서 모든 파일을 가져옴
foreach (var file in Directory.EnumerateFiles(@“C:\Temp\”, “*”, SearchOption.AllDirectories))
{
Console.WriteLine(file);
}
// 현재 디렉터리의 모든 파일을 가져옴
foreach (var file in Directory.EnumerateFiles(@“C:\Temp\”, “*”, SearchOption.TopDirectoryOnly))
{
Console.WriteLine(file);
}
// 하위 디렉터리까지 포함해서 지정된 확장자의 모든 파일을 가져옴
foreach (var file in Directory.EnumerateFiles(@“C:\Temp\”, searchPattern: “*.txt”, SearchOption.AllDirectories))
{
Console.WriteLine(file);
}
|
※ 이상으로 C#에서 폴더(디렉터리) 내에 있는 파일을 가져오는 2가지 방법에 대해 알아보았습니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
이 글이 도움이 되었기를 바랍니다. ^-^