在文件中查找C#

CR4*_*G14 3 .net c# asp.net

我有一个有多个子文件夹的文件夹.每个子文件夹中都包含许多.dot和.txt文件.

在C#.NET中是否有一个简单的解决方案,它将迭代每个文件并检查该文件的内容中是否有关键短语或关键字?

Document Name        Keyword1         Keyword2         Keyword3        ...
  test.dot              Y               N                Y
Run Code Online (Sandbox Code Playgroud)

总结一下:

  1. 选择一个文件夹
  2. 输入要搜索的关键字列表
  3. 然后程序将搜索每个文件,并在最后输出上面的内容,我不担心创建数据表来显示数据网格,因为我可以这样做.我只需要执行类似于Notepad ++的find in files选项的find in files功能

提前致谢

小智 5

你想要的是递归地迭代目录中的文件(也许是它的子目录).

因此,您的步骤是使用.NET中的Getfiles()将eeach文件循环到指定目录中.然后,如果你遇到一个目录循环它再次.

使用此代码示例可以轻松完成此操作:

  public static IEnumerable<string>  GetFiles(string path)
  {
        foreach (string s in Directory.GetFiles(path, "*.extension_here"))
        {
              yield return s;
        }


        foreach (string s in Directory.GetDirectories(path))
        {
              foreach (string s1 in GetFiles(s))
              {
                    yield return s1;
              }
        }
  }
Run Code Online (Sandbox Code Playgroud)

在.NET中的目录中迭代throug文件的更深入的看法位于:

http://blogs.msdn.com/b/brada/archive/2004/03/04/84069.aspx

然后你使用String中的IndexOf方法来检查你的关键字是否在文件中(我不鼓励使用ReadAllText,如果你的文件大5 MB,那么你的字符串也是如此.逐行排列的内存会更少)