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

C#의 디렉토리에서 모든 파일, 하위 파일 및 크기를 가져오는 방법은 무엇입니까?

<시간/>

파일을 가져오기 위해 C#은 Directory.GetFiles 메서드를 제공합니다.

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

아래 예에서 *는 해당 위치의 0개 이상의 문자와 일치합니다.

SearchOption TopDirectoryOnly. 상위 디렉토리만 검색

SearchOption AllDirectories .모든 상위 디렉토리 및 하위 디렉토리 검색

FileInfo는 길이, 이름과 같은 파일 정보를 가져옵니다.

예시 1

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

   foreach (string file in files) {
      Console.WriteLine(file);
   }
   Console.ReadLine ();
}

출력

C:\Users\Koushik\Desktop\TestFolder\TestFolderMain\TestFolderMain.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 1\TestFolderMain1.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2\TestFolderMain2.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2\TestFolderMainSubDirectory\TestFolderSubDirectory.txt

예시 2

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

   foreach (string file in files) {
      Console.WriteLine(file);
   }
   Console.ReadLine ();
}

출력

C:\Users\Koushik\Desktop\TestFolder\Topdirectory.txt

예시 3

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

   foreach (string file in files) {
      var info = new FileInfo(file);
      Console.WriteLine($"{ Path.GetFileName(file) }: { info.Length } bytes");
   }
   Console.ReadLine ();
}

출력

Topdirectory.txt: 0 bytes
TestFolderMain.txt: 0 bytes
TestFolderMain1.txt: 10 bytes
TestFolderMain2.txt: 20 bytes