Tôi có đoạn mã sau đây để tìm kiếm đệ quy các tập tin thông qua một thư mục, trả về danh sách tất cả các tệp xml cho tôi. Tất cả hoạt động tốt, ngoại trừ các tệp xml trong thư mục gốc không được bao gồm trong danh sách.Tìm kiếm tập tin trong thư mục đệ quy
Tôi hiểu tại sao, vì điều đầu tiên nó thực hiện là lấy các thư mục trong thư mục gốc, sau đó nhận các tệp, do đó thiếu lệnh GetFiles() trên thư mục gốc. Tôi đã thử bao gồm cả GetFiles() gọi trước khi foreach, nhưng kết quả không như tôi mong đợi.
public static ArrayList DirSearch(string sDir)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
foreach (string f in Directory.GetFiles(d, "*.xml"))
{
string extension = Path.GetExtension(f);
if (extension != null && (extension.Equals(".xml")))
{
fileList.Add(f);
}
}
DirSearch(d);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return fileList;
}
cấu trúc thư mục của tôi là một cái gì đó như:
RootDirectory
test1.0.xml
test1.1.xml
test1.2.xml
2ndLevDir
test2.0.xml
test2.1.xml
3rdLevDir
test3.0.xml
test3.1.xml
lợi nhuận Code:
test2.0.xml
test2.1.xml
test3.0.xml
test3.1.xml
Tôi muốn quay trở lại tất cả các file bao gồm:
test1.0.xml
test1.1.xml
test1.2.xml
Không rất tốt câu với recursi trên. Bât cư thông tin được cung câp nao cung được la sự suât hiện tuyệt vơi.
'Directory.EnumerateFiles (sDir, "* .xml", SearchOption.AllDirectories) ' –