Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để lấy tất cả các tệp, tệp con và kích thước của chúng bên trong một thư mục trong C #?

Để lấy các tệp, C # cung cấp một phương thức Directory.GetFiles

Directory.GetFiles trả về tên của tất cả các tệp (bao gồm cả đường dẫn của chúng) phù hợp với mẫu tìm kiếm được chỉ định và tìm kiếm các thư mục con theo tùy chọn.

Trong ví dụ dưới đây, * khớp với 0 hoặc nhiều ký tự ở vị trí đó.

SearchOption TopDirectoryOnly. Chỉ tìm kiếm các thư mục hàng đầu

SearchOption AllDirectories. Tìm kiếm tất cả các thư mục trên cùng và thư mục con

FileInfo lấy thông tin tệp như Độ dài, tên

Ví dụ 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 ();
}

Đầu ra

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

Ví dụ 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 ();
}

Đầu ra

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

Ví dụ 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 ();
}

Đầu ra

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