title: How to exclude folders when using Directory.GetDirectories
body: <p>I want to return a list of all the subdirectories in the 'SomeFolder' directory <strong>excluding</strong> the 'Admin' and 'Templates' directories.  </p>
  
  <p>I have the following folder structure (simplified):</p>
  
  <pre><code>    C:\inetpub\wwwroot\MyWebsite\SomeFolder\RandomString
      C:\inetpub\wwwroot\MyWebsite\SomeFolder\RandomString
      C:\inetpub\wwwroot\MyWebsite\SomeFolder\RandomString
      C:\inetpub\wwwroot\MyWebsite\SomeFolder\Admin 
      C:\inetpub\wwwroot\MyWebsite\SomeFolder\Templates 
  </code></pre>
  
  <p>'SomeFolder' can contain a varying number a 'RandomString' folders (anywhere from ~10 to ~100).</p>
  
  <p>Here is what I have tried:</p>
  
  <pre><code>    var dirs = Directory.GetDirectories(Server.MapPath(".."))
      .Where(s =&gt; !s.EndsWith("Admin") || !s.EndsWith("Templates"));
      foreach (string dir in dirs)
      {
          lit.Text += Environment.NewLine + dir;
      }
  </code></pre>
  
  <p>This returns the full list of folders (shown above) without 'Admin' and 'Templates' filtered out.</p>
  
  <p>Interestingly, if I change the LINQ <code>.Where</code> clause to <em>include</em>, instead of <em>exclude</em>, 'Admin' and 'Templates' it works, meaning it returns just the paths for 'Admin' and 'Templates'.</p>
  
  <pre><code>.Where(s =&gt; s.EndsWith("Admin") || s.EndsWith("Templates"));
  </code></pre>
  
  <p>If LINQ is not the solution, is there any way to use the GetDirectories SearchPattern to filter out directories?</p>