01/10/2018, 17:20

Cách lấy tất cả tập tin của thư mục trong C#

Trong C# có hỗ trợ hàm GetFiles() của lớp Directory trong namespace tên System.IO , hàm này trả về một mãng các đường dẫn đầy đủ và tên tập tin được chứa trong thư mục. Bạn có thể gọi hàm theo một trong 3 cú pháp bên dưới: Cú pháp 1 : Directory .GetFiles( string path); Trong đó: ...

Trong C# có hỗ trợ hàm GetFiles() của lớp Directory trong namespace tên System.IO, hàm này trả về một mãng các đường dẫn đầy đủ và tên tập tin được chứa trong thư mục. Bạn có thể gọi hàm theo một trong 3 cú pháp bên dưới:

Cú pháp 1:

Directory.GetFiles(string path);

Trong đó:

  • path: là đường dẫn thư mục bạn muốn lấy tất cả các tập tin.

Cú pháp 2:

Directory.GetFiles(string path, string searchPattern);

Trong đó:

  • path: giống như cú pháp 1
  • searchPattern: chỉ định những tập tin bạn muốn lấy. Ví dụ bạn chỉ muốn lấy những tập tin hình ảnh có dịnh dạng jpg, bạn truyền vào chuỗi như sau “*.jpg”, hoặc bạn chỉ lấy tập tin có tên bắt đầu là image thì bạn truyền vào chuỗi như sau “image*”, … Tương tự, bạn có thể truyền các chuỗi sau “*.doc”, “*.xls”, “*.pdf”, …

Cú pháp 3:

Directory.GetFiles(string path, string searchPattern, SearchOption searchOption);

Trong đó:

  • path & searchPattern: giống như cú pháp 2
  • searchOption:  c# hỗ trợ 2 tùy chọn sau

+ SearchOption.AllDirectories: lấy tất cả tập tin trong thư mục, bao gồm các tập tin trong thư mục con

+ SearchOption.TopDirectoryOnly: chỉ lấy các tập tin trong thư mục hiện tại mà thôi (không lấy tập tin trong thư mục con)

Minh họa cách gọi hàm của 3 cú pháp trên:

Cách 1:

string[] filePahts = System.IO.Directory.GetFiles(@"D:Images");

Cách 2:

string[] filePahts = System.IO.Directory.GetFiles(@"D:Images", "*.jpg" );

Cách 3:

string[] filePahts1 = System.IO.Directory.GetFiles(@"D:Images", "*.*", SearchOption.AllDirectories);

string[] filePahts2 = System.IO.Directory.GetFiles(@"D:Images", "*.*", SearchOption.TopDirectoryOnly);

Mở rộng Dùng nhiều extension để filter tập tin

Chúc các bạn thành công! :lol:


0