C# 확장자 분류하여 progressbar로 만들기

안녕하세요. 저는 c# 으로 선택한 디렉토리를 검사(하위 디렉토리, 파일들까지)하여 디렉토리 안에 있는 파일들의 확장자 종류와 차지하고 있는 비율을 progressbar로 나타내려고 합니다. 하지만 디렉토리 검사까지는 enumeratefiles 나 enumeratedirectories로 해결할 수 있을 것 같은데 확장자들을 분류하여 progressbar로 만드는데 어려움을 겪고 있습니다. 혹시 조언해주실 수있나요?

어떤 어려움이 있는지 좀 더 구체적으로 이야기 해주면 좋겠습니다.

  1. 확장자 별로 비율을 구하는 방법
  2. 확장자 별로 구한 비율을 progressbar로 나타내는 방법

1.의 경우, 다음의 코드를 참고 바랄께요. 예시입니다.

// 목적 경로
var targetPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles);

var totalFiles = Directory.EnumerateFiles(targetPath, "*", SearchOption.AllDirectories).ToList();
var totals = totalFiles.Count;
var result = totalFiles
    .Select(x => new FileInfo(x))
    .GroupBy(x => x.Extension)
    .Select(x => (x.Key, x.Count()))
    .OrderByDescending(x => x.Item2);

foreach (var file in result)
{
    Console.WriteLine(file);
}

| 출력

(.js, 2936)
(.svg, 741)
(.json, 358)
(.png, 306)
(.dll, 280)
(.md, 207)
(.properties, 174)
(, 164)
(.pak, 145)
(.mui, 129)
(.jsx, 92)
(.dat, 69)
(.xml, 52)
(.ts, 51)
(.jpg, 39)
(.exe, 27)
(.html, 27)
(.helpcfg, 26)
(.h, 22)
(.css, 17)
(.txt, 16)
(.tlb, 12)
(.node, 11)
(.DLL, 10)
...
5개의 좋아요

답변 감사합니다! 확장자 비율을 progressbar로 나타내는데 어려움이 있었습니다… 이 부분은 제가 한 번 해결해보겠습니다!

2의 경우 1에서 얻은 비율 value를 사용해서 single stacked bar chart(?)의 비율로 설정하시는건 어떨까요?

1개의 좋아요

오 그럼 좋겠네요! 의견 감사합니다!