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; } }
转载于:https://www.cnblogs.com/QIAOYIJUN/archive/2013/05/02/3054073.html