2012-05-19 22 views
8

que tienen algo de código:¿Enumerar solo subcarpetas en 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); 
} 

Quiero las subcarpetas de: documents\iracing\setups\ que se muestran, no los archivos ... incluyendo los archivos .sto. Todo lo que necesito es hacer una lista de las subcarpetas ... ¿no tengo idea de cómo hacer eso? ¡Gracias!

Respuesta

16

Puede probar esto:

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

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

¿cómo lo haría para llenar mi listbox2 con estas subcarpetas? –

+1

¡Perfecto! Tahanks !! –

1

Use EnumerateDirectories o GetDirectories en lugar de GetFiles si desea obtener ... directorios.

+0

Entonces, ¿qué puedo poner dentro de la 's()? : FileInfo [] Files = dinfo.GetDirectories(); –

+0

@EliteGamer - ¿Has leído los enlaces? Realmente necesitas aprender a leer la documentación. El tipo de devolución y los parámetros necesarios (si los hay) se enumeran. – Oded

+0

lo siento, ni siquiera sabía aquellos en los enlaces ... –

2

sólo tiene que utilizar esta función

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

¡Genial! ¡¡Gracias por la respuesta!! –

+1

De nada. –

Cuestiones relacionadas