title: Recursive looping through files stops abruptly
body: <p>So I'm trying to run through every file on my harddrive, but it stops once it gets to the 2115th (I think) loop. I believe it is a stack overflow due to my use of recursion, but I'm new to C# and really have no idea. Here's my code, thank you very much.</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.IO;
  using System.Data;
  
  namespace test_data
  {
      class Program
      {
          static string drive = Path.GetPathRoot(Environment.CurrentDirectory);
  
          static void CrawlDir(string dir)
          {
              string[] dir_package = {};
              List&lt;string&gt; dir_list = new List&lt;string&gt;();
              foreach (string scan_dir in Directory.GetDirectories(dir))
              {
  
                  try
                  {
                      dir_list.Add(scan_dir);
                  }
                  catch (System.Exception error)
                  {
                      Console.WriteLine(error.Message);
                  }
  
              }
  
              dir_package = dir_list.ToArray();
              Process_Package(dir_package);
          }
  
          static void Main(string[] args)
          {
              CrawlDir(drive);
              Console.ReadLine();
          }
  
          static void Process_Package(string[] package)
          {
              foreach (string dir in package)
              {
                  Console.WriteLine(dir);
                  try
                  {
                      CrawlDir(dir);
                  }
                  catch (Exception)
                  {
                      Console.WriteLine("Error!");
                  }
              }
          }
  
      }
  
  }
  </code></pre>