2011-09-02 14 views
8

que tienen el siguiente fragmento de código:Posible especificar la ruta del directorio con un comodín?

foreach (string file in Directory.GetFiles(sourcePath)) 
{ 
    // whatever 
} 

que obtiene los archivos de un directorio específico. ¿Sería posible hacer coincidir directorios usando un comodín? Por ejemplo:

c:\test\di* 

coincidiría con todos los archivos en los directorios:

c:\test\dictionary\ 
c:\test\directory\ 
c:\test\dig\ 

he visto que se puede pasar un filtro de archivos con el método GetFiles, pero que se aplica sólo a archivos, no los nombres de directorio.

Respuesta

10

Usted tiene un overload para este, que le permite especificar un patrón de búsqueda o si necesita especificar las opciones de búsqueda que hay another overload:

foreach (string directory in Directory.GetDirectories(sourcePath, "di*")) 
{ 
    // whatever 
} 
+0

Creo que es un filtro de archivos y no permite para el uso de comodines cuando se especifica el directorio. ¿No sería su ejemplo solo los archivos que comienzan con 'di' en un directorio específico? –

+2

@Abe Miessler, no, funciona perfectamente con nombres de directorios. Pruebe el ejemplo que publiqué: 'Directory.GetDirectories (@" c: \ test "," di * "))' coincidirá con todos los directorios que ha mostrado en su pregunta. –

+0

¡oh! Ok, déjame probar. –

Cuestiones relacionadas