2011-12-30 20 views

答えて

0

を私はあなたがファイルの内容の実際の正規表現のマッチングを行うだろうかわからないんだけど、どうやってここです再帰的にフォルダを移動します。

public void NavigateFolder(DirectoryInfo d) 
{ 
    foreach (FileInfo f in d.GetFiles()) 
    { 
     //create a streamreader and try to match regex to file contents here 
    } 

    foreach (DirectoryInfo d in d.GetDirectories()) 
    { 
     NavigateFolder(d); 
    } 
} 
0

私はそのようなものの既成の解決策を知らない。すべてのファイルを再帰的に列挙しなければならなくなります。各ファイルについて、その内容を文字列にロードし、その文字列に対して正規表現を適用する必要があります。

与えられたパスの下にあるすべてのファイルを再帰的に列挙するために、私は次の関数を使用します。

public static IEnumerable<Fileinfo> EnumerateMatches(string directory, string filenameonly, 
     bool dirs_only) 
    { 
     DirectoryInfo directory_info = new DirectoryInfo(directory); 
     if(dirs_only) 
     { 
      DirectoryInfo[] infos = directory_info.GetDirectories(filenameonly); 
      foreach(DirectoryInfo info in infos) 
      { 
       string subpathonly = Path.Combine(directory, info.Name); 
       yield return new Fileinfo(info.FullName, true, info.LastWriteTime, 0); 
      } 
     } 
     else 
     { 
      FileInfo[] infos = directory_info.GetFiles(filenameonly); 
      foreach(FileInfo info in infos) 
      { 
       yield return new Fileinfo(info.FullName, false, info.LastWriteTime, info.Length); 
      } 
     } 
    } 
+0

こんにちは、私は明確ではなかった場合、私はオーケーテキスト – Mike

+0

のファイル内を検索したい申し訳ありませんが、私はそれに応じて私の答えを変更します。 –

関連する問題