2012-05-19 45 views
8

Tôi có một số mã:Chỉ liệt kê các SubFolders trong C#?

string pathUser = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); 
string pathDownload = Path.Combine(pathUser, @"documents\iracing\setups\"); 
DirectoryInfo dinfo = new DirectoryInfo(pathDownload); // Populates field with all Sub Folders 
FileInfo[] Files = dinfo.GetFiles("*.sto"); 
foreach (FileInfo file in Files) 
{ 
    listBox2.Items.Add(file.Name); 
} 

Tôi muốn các thư mục con của: documents\iracing\setups\ được hiển thị, không phải các tập tin ... bao gồm cả các tập tin .sto. Tất cả những gì tôi cần là liệt kê các thư mục con .... tôi không biết làm thế nào để làm điều đó? Cảm ơn!

Trả lời

16

Bạn có thể thử này:

DirectoryInfo directory = new DirectoryInfo(pathDownload); 
DirectoryInfo[] directories = directory.GetDirectories(); 

foreach(DirectoryInfo folder in directories) 
    listBox2.Items.Add(folder.Name); 
+0

Tôi sẽ làm thế nào để điền vào listbox2 của tôi với các thư mục con này? –

+1

Hoàn hảo! Tahanks !! –

1

Sử dụng EnumerateDirectories hoặc GetDirectories thay vì GetFiles nếu bạn muốn nhận ... thư mục.

+0

Vì vậy, những gì tôi đặt bên trong() 's? : FileInfo [] Files = dinfo.GetDirectories(); –

+0

@EliteGamer - Bạn đã đọc các liên kết chưa? Bạn thực sự cần phải tìm hiểu để đọc tài liệu. Kiểu trả về và các tham số cần thiết (nếu có) được liệt kê. – Oded

+0

xin lỗi, tôi thậm chí không biết những nơi liên kết ... –

2

Chỉ cần sử dụng chức năng này

string pathUser = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); 
string pathDownload = Path.Combine(pathUser, @"documents\iracing\setups\"); 
DirectoryInfo dinfo = new DirectoryInfo(pathUser); // Populates field with all Sub Folders 
DirectoryInfo[] directorys = dinfo.GetDirectories(); 
foreach (DirectoryInfo directory in directorys) 
{ 
    listBox2.Items.Add(directory.Name); 
} 
+0

Tuyệt vời! Cảm ơn câu trả lời !! –

+1

Bạn được chào đón. –

Các vấn đề liên quan