Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#을 사용하여 사람이 읽을 수 있는 파일 크기(바이트 약어)를 얻으려면 어떻게 해야 합니까?

<시간/>

디렉터리를 가져오려면 C#에서 Directory.GetDirectories

메서드를 제공합니다.

Directory.GetDirectories는 지정된 디렉터리의 지정된 검색 패턴과 일치하는 하위 디렉터리의 이름(경로 포함)을 반환하고 선택적으로 하위 디렉터리를 검색합니다.

파일을 가져오기 위해 C#은 Directory.GetFiles

메서드를 제공합니다.

Directory.GetFiles는 지정된 검색 패턴과 일치하는 모든 파일(경로 포함)의 이름을 반환하고 선택적으로 하위 디렉터리를 검색합니다.

파일 길이를 얻기 위해 C#은 Length 속성을 제공합니다.

예시

static void Main(string[] args) {
   string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
   var files = Directory.GetFiles(rootPath, "*.*", SearchOption.AllDirectories);

   foreach (string file in files) {
      long size = new FileInfo(file).Length / 1024;
      string humanKBSize = string.Format("{0} KB", size);
      string humanMBSize = string.Format("{0} MB", size / 1024);
      string humanGBSize = string.Format("{0} GB", size / 1024 / 1024);
      Console.WriteLine($"KB:{humanKBSize} MB:{humanMBSize} GB:{humanGBSize}");
   }
   Console.ReadLine();
}

출력

file C:\Users\Koushik\Desktop\TestFolder\Topdirectory.txt 22 KB 0 MB 0 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain\TestFolderMain.txt 0 KB 2 MB 0 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain1\TestFolderMain1.txt 0 KB 0 MB 1 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain1.txt 0 KB 0 MB 1 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain2.txt 0 KB 0 MB 1 GB
file C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMainSubDirectory\TestFolderSubDirectory.txt 0 KB 0 MB 1 GB