- using System.IO;
- class QueryContents
- {
- public static void Main()
- {
- // Modify this path as necessary.
- string startFolder = @"c:\\program files\\Microsoft Visual Studio 9.0\\";
- // Take a snapshot of the file system.
- DirectoryInfo dir = new DirectoryInfo(startFolder);
- // This method assumes that the application has discovery permissions
- // for all folders under the specified path.
- IEnumerable<System.IO.FileInfo> fileList = dir.GetFiles("*.*", SearchOption.AllDirectories);
- string searchTerm = @"Visual Studio";
- // Search the contents of each file.
- // A regular expression created with the RegEx class
- // could be used instead of the Contains method.
- // queryMatchingFiles is an IEnumerable<string>.
- var queryMatchingFiles =
- from file in fileList
- where file.Extension == ".htm"
- let fileText = GetFileText(file.FullName)
- where fileText.Contains(searchTerm)
- select file.FullName;
- // Execute the query.
- Console.WriteLine("The term \\"{0}\\" was found in:", searchTerm);
- foreach (string filename in queryMatchingFiles)
- {
- Console.WriteLine(filename);
- }
- // Keep the console window open in debug mode.
- Console.WriteLine("Press any key to exit");
- Console.ReadKey();
- }
- // Read the contents of the file.
- static string GetFileText(string name)
- {
- string fileContents = String.Empty;
- // If the file has been deleted since we took
- // the snapshot, ignore it and return the empty string.
- if (File.Exists(name))
- {
- fileContents = System.IO.File.ReadAllText(name);
- }
- return fileContents;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/0408201513325.html
来源: http://www.codesnippet.cn/detail/0408201513325.html