2012-05-19 13 views
8

Mam kod:Wyświetlanie tylko podfolderów w języku 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); 
} 

chcę podfoldery: documents\iracing\setups\ być wyświetlane, a nie pliki ... w tym plików .sto. Wszystko, czego potrzebuję, to lista Podfolderów ... nie mam pojęcia, jak to zrobić? Dzięki!

Odpowiedz

16

Można spróbować to:

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

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

jak to zrobić, aby wypełnić mój listbox2 tymi podfolderami? –

+1

Idealny! Tahanks !! –

1

Użyj EnumerateDirectories lub GetDirectories zamiast GetFiles, jeśli chcesz uzyskać ... katalogi.

+0

Więc, co mogę umieścić wewnątrz() 's? : FileInfo [] Files = dinfo.GetDirectories(); –

+0

@EliteGamer - Czy przeczytałeś linki? Naprawdę musisz nauczyć się czytać dokumentację. Wyświetlany jest typ zwrotu i potrzebne parametry (jeśli istnieją). – Oded

+0

Przepraszam, nie wiedziałem nawet, gdzie linki ... –

2

Wystarczy użyć tej funkcji

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

Świetnie! Dziękuję za odpowiedź!! –

+1

Nie ma za co. –

Powiązane problemy