using recursion, the idea is like this
1. search for *.txt in the "path" specified
2. get the subdirectories in the "path"
3. call the search function on each subdirectorytry something likeusing System;
using System.IO;class Traverse
{
 static void TraverseFolder(DirectoryInfo dir)
 {
  FileInfo[] filesInDir = dir.GetFiles("*.txt");
  foreach(FileInfo file in filesInDir)
  {
    Console.WriteLine("{0}", file.FullName);
  }  DirectoryInfo[] directories = dir.GetDirectories();
  foreach(DirectoryInfo newDir in directories)
  {
    TraverseFolder(newDir); // recursive call
  }
 } public static void Main()
 {
          String path = "D:\\";
          DirectoryInfo di = new DirectoryInfo(path);
          TraverseFolder(di);
 }
}