Pregunta

Estoy buscando una biblioteca de C # para obtener archivos o directorios de un directorio usando un patrón complejo como el que se usa en Ant:

  • dir1 / dir2 / ** / SVN / * - > Coincide con todos los archivos en los directorios SVN que se encuentran en cualquier lugar del árbol de directorios en dir1 / dir2
  • ** / test / ** - > Coincide con todos los archivos que tienen un elemento de prueba en su ruta, incluido la prueba como un nombre de archivo.
  • ...

¿Necesito codificarlo yo mismo? ¿Extraigo lo que quiero de NAnt? O esta biblioteca existe y mi habilidad de google apesta.

Directory.GetFiles (String path, String searchPattern) no controla el patrón de directorio y NDepend.Helpers.FileDirectoryPath tampoco (es una gran biblioteca para la manipulación de rutas, por cierto)

¿Fue útil?

Solución

Codificarlo tú mismo no sería tan difícil.

Simplemente use una expresión regular correctamente formulada con los métodos de System.IO para construir la ruta completa

Otros consejos

¿Se siente cómodo al definir " * " como " todo menos una barra " y " ** " como " cualquier cosa " ;? Si es así, la conversión de expresiones regulares parece sencilla.

*   -> [^\/]*
**  -> .*

Entonces es cuestión de enumerar recursivamente todos los archivos y verificar si sus rutas coinciden con la expresión regular.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top