質問

Antで使用されているような複雑なパターンを使用して、ディレクトリからファイルまたはディレクトリを取得するためのC#ライブラリを探しています:

  • dir1 / dir2 / ** / SVN / * -> dir1 / dir2の下のディレクトリツリー内の任意の場所にあるSVNディレクトリ内のすべてのファイルに一致します
  • ** / test / ** ->パスにテスト要素があるすべてのファイルに一致します(ファイル名としてのテストを含む)。
  • ...

自分でコーディングする必要がありますか? NAntから必要なものを抽出しますか?または、このライブラリが存在し、Googleのスキルが悪い。

Directory.GetFiles(String path、String searchPattern)はディレクトリパターンを処理せず、 NDepend.Helpers.FileDirectoryPath どちらでもない(これは、パス操作のための素晴らしいライブラリです)

役に立ちましたか?

解決

自分でコーディングするのはそれほど難しくありません。

System.IOメソッドで正しく作成された正規表現を使用して、フルパスを構築するだけです

他のヒント

" *"の定義に慣れていますか? 「スラッシュ以外のもの」としておよび" **" 「何でも」として?その場合、正規表現の変換は簡単に思えます。

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

次に、すべてのファイルを再帰的に列挙し、それらのパスが正規表現に一致するかどうかを確認する問題です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top