Pergunta

Eu estou procurando uma biblioteca C # para obter arquivos ou diretórios de um diretório usando um padrão complexo como o usado no Ant:

  • dir1/dir2/**/SVN/* -> Jogos todos os arquivos em diretórios SVN que estão localizados em qualquer lugar na árvore de diretórios sob dir1 / dir2
  • **/test/** -.> Jogos todos os arquivos que têm um elemento de teste em seu caminho, incluindo o teste como um nome de arquivo
  • ...

Eu preciso de código-lo eu mesmo? extrair o que eu quero de NAnt? Ou existe esta biblioteca e meu google habilidade é uma porcaria.

Directory.GetFiles(String path, String searchPattern) não lidar com padrão de diretório e NDepend.Helpers.FileDirectoryPath não (é uma grande biblioteca para a manipulação caminho pela maneira)

Foi útil?

Solução

Codificação-lo sozinho não seria tão difícil.

Basta usar uma expressão regular corretamente formulado com métodos System.IO para construir o caminho completo

Outras dicas

Você está satisfeito com a definição de "*" como "qualquer coisa, mas barra" e "**" como "nada"? Se assim for, a conversão regex parece simples.

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

Então é uma questão de enumerar recursivamente todos os arquivos, e verificar se seus caminhos corresponder ao regex.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top