2009-08-04 9 views

Respuesta

12

Este fragmento de código recupera una lista de todas las unidades lógicas en la máquina y luego busca en todas las carpetas de la unidad los archivos que coincidan con el nombre de archivo "Cheese.exe". Una vez que el bucle ha completado, los "archivos" lista contiene los

 var files = new List<string>(); 
    //@Stan R. suggested an improvement to handle floppy drives... 
    //foreach (DriveInfo d in DriveInfo.GetDrives()) 
    foreach (DriveInfo d in DriveInfo.GetDrives().Where(x => x.IsReady == true)) 
    { 
     files.AddRange(Directory.GetFiles(d.RootDirectory.FullName, "Cheese.exe", SearchOption.AllDirectories)); 
    } 
+1

Casi - Es necesario añadir en el SearchOption –

+0

lo que sucede cuando usted no tiene acceso al directorio de dar ... decir "Documents and Settings" :) –

+0

sí, será necesario algún tratamiento de excepciones - el fragmento fallará en la mayoría de las máquinas porque la unidad de disquete no está lista. Sin embargo, muestra la sintaxis del método GetFiles, que es lo que se necesita. –

2

Si quieres saber un poco más sobre la mecánica de buscar múltiples directorios, buscar en Google reveló this post. Tiene una buena solución y explicación de recurrencia a través de directorios usted mismo. Puede cambiar la especificación de archivos en Directory.GetFiles para que coincida con su cadena de búsqueda y, probablemente, utilizarla como está.

Cuestiones relacionadas