Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Tìm file trong C#

Dùng Directory.GetDirectories đệ quy hoặc GetFiles với SearchOption.AllDirectories.

string path = @"d:/New/Myfile";
string[] dirs = Directory.GetDirectories(path, "xml", SearchOption.AllDirectories);
Console.WriteLine(dirs.Length);
foreach (string d in dirs) Console.WriteLine(d);

Các cách tìm file

1. Directory.GetFiles (đơn giản nhất)

// Tìm file *.txt trong thư mục và subfolder
string[] files = Directory.GetFiles(@"C:\Data", "*.txt", SearchOption.AllDirectories);

2. Directory.EnumerateFiles (lazy, tiết kiệm memory)

foreach (string file in Directory.EnumerateFiles(@"C:\Data", "*.txt", SearchOption.AllDirectories))
    Console.WriteLine(file);

3. DirectoryInfo (object-oriented)

var dir = new DirectoryInfo(@"C:\Data");
foreach (var file in dir.GetFiles("*.txt", SearchOption.AllDirectories))
    Console.WriteLine(file.FullName);

4. Tìm theo pattern phức tạp

var files = Directory.GetFiles(path, "*", SearchOption.AllDirectories)
    .Where(f => f.EndsWith(".log") || f.EndsWith(".txt"))
    .ToList();

Lưu ý: Cần try-catch cho UnauthorizedAccessException khi duyệt system folders.