Find File Content Using the .NET IO Class

Environment: C#, Win9x/2000/XP

This is a very simple application that uses the .NET I/O class to search the files' content in a directory. I first used a DirectoryInfo class to get the directory information. Then, I saved the file list in a FileInfo array. You loop through the array and open each file for reading. Convert the buffer to string type, find the text, and raise an event when it's found.

The searching process can be time consuming. We can use the .NET delegate function to search asynchronously, as show below.

//declare a delegate function
private delegate void FindAsyn();

[STAThread]
static void Main(string[] args)
{

  FileFind ff = new FileFind();

  //subscribe the found file event
  ff.OnFileFound += new FoundDelegate(OnFoundFile);

  //The directory to be searched
  ff.PathName = @"C:\MyFileDir";
  //The text to be searched
  ff.FindText ="findtext";

  //delegate to...
  FindAsyn f = new FindAsyn(ff.StartSearch);
  //invoke the searching function asynchronously
  f.BeginInvoke(null,null);
  Console.Read();             // pause the screen;
  FileFind.bStopIt = true;    // stop it if the process takes
                              // too long.
  Console.Read();
  //unsubscribe the event
  ff.OnFileFound -= new FoundDelegate(OnFoundFile);

}

private static void OnFoundFile(string filename)
{
  Console.WriteLine(filename);
}

Downloads

Download demo project - 7 Kb
Download source - 3 Kb


Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Download the Information Governance Survey Benchmark Report to gain insights that can help you further establish business value in your Records and Information Management (RIM) program and across your entire organization. Discover how your peers in the industry are dealing with this evolving information lifecycle management environment and uncover key insights such as: 87% of organizations surveyed have a RIM program in place 8% measure compliance 64% cannot get employees to "let go" of information for …

  • Hurricane Sandy was one of the most destructive natural disasters that the United States has ever experienced. Read this success story to learn how Datto protected its partners and their customers with proactive business continuity planning, heroic employee efforts, and the right mix of technology and support. With storm surges over 12 feet, winds that exceeded 90 mph, and a diameter spanning more than 900 miles, Sandy resulted in power outages to approximately 7.5 million people, and caused an estimated $50 …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds