[C# 문법] C# Directory 에서 SubDirectory(하위 디렉토리) 찾기
- C#/C# 문법
- 2021. 7. 29. 18:17
안녕하세요. 오늘은 C# 문법에서 Directory 다루는 방법에 대해서 알려 드리려고 합니다. 그 중에서도 해당 정해진 경로가 있으면 그 경로 안에 SubDirectory 들이 있는지에 대한 유무를 찾는 방법에 대해서 알려 드리려고 합니다. 해당 메서드는 제가 구현한 것이 아니라, StackOverFlow 에 있는 것을 가져다가 응용한 것이니까 여러분들도 해당 구문 참고하시면 좋겠습니다.
예제 코드
using System;
using System.Collections.Generic;
using System.IO;
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
List<string> list = new List<string>();
DirectoryInfo path = new DirectoryInfo(@"C:\Users\Desktop\Demo");
DirectoryInfo[] dir = path.GetDirectories();
for(int idx = 0; idx < dir.Length; idx++)
{
FindDirectoriesWithFiles(list, dir[idx]);
}
foreach (var item in list)
{
Console.WriteLine($"Directory 아이템 목록 : {item}");
}
}
public static void FindDirectoriesWithFiles(List<string> paths, DirectoryInfo workingDir)
{
if (workingDir.GetFiles().Length > 0)
{
paths.Add(workingDir.FullName);
}
else
{
foreach (var childDir in workingDir.GetDirectories())
{
FindDirectoriesWithFiles(paths, childDir);
}
}
}
}
}
실행 결과
Directory 아이템 목록 : C:\Users\Desktop\Demo\2020\09
Directory 아이템 목록 : C:\Users\Desktop\Demo\2020\10
Directory 아이템 목록 : C:\Users\Desktop\Demo\2020\11
Directory 아이템 목록 : C:\Users\Desktop\Demo\2020\12
Directory 아이템 목록 : C:\Users\Desktop\Demo\2021\01
Directory 아이템 목록 : C:\Users\Desktop\Demo\2021\02
Directory 아이템 목록 : C:\Users\Desktop\Demo\2021\03
Directory 아이템 목록 : C:\Users\Desktop\Demo\2021\04
Directory 아이템 목록 : C:\Users\Desktop\Demo\2021\05
- 참고로, 위의 소스코드에서는 Directory 안에 파일들이 있는 경우의 Directory 정보들을 가져오도록 하였습니다.
- 만약, 파일 유무와 상관없이 모든 Directory 정보를 가져오고 싶다면 if (workingDir.GetFiles().Length > 0) 이 조건을 없애시면 됩니다.
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# 디렉토리(Directory) 년\월\일 디렉토리 구조 삭제하기 (0) | 2021.08.03 |
---|---|
[C# 문법] C# 월별, 일별 Directory 삭제하기 (0) | 2021.07.29 |
[C# 문법] C# Dictionary 같은 Key 에 여러개의 데이터 넣기 (0) | 2021.07.28 |
[C# 문법] C# 문자열 내 숫자만 필터하기 (0) | 2021.07.26 |
[C# 문법] C# Closure : 반복문 내 람다식 사용 방법 (0) | 2021.07.25 |
이 글을 공유하기