title: C# UnauthorizedAccessException to User Folder
body: <p>I'm trying to list all folders and files in my User folder which is "Thomas", then I want to get all of the folders in those folders as well as files and so on. But whenever I run it, it throws this exception:</p>
  
  <pre><code>System.UnauthorizedAccessException: Access to the path 'C:\Users\Thomas\AppData\Local\Application Data' is denied.
     at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
     at System.IO.FileSystemEnumerableIterator`1.AddSearchableDirsToStack(SearchData localSearchData)
     at System.IO.FileSystemEnumerableIterator`1.MoveNext()
     at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
     at System.IO.Directory.GetDirectories(String path, String searchPattern, SearchOption searchOption)
     at GetFilesInFolders.Program.Main(String[] args) in c:\users\thomas\documents\visual studio 2017\Projects\GetFilesInFolders\GetFilesInFolders\Program.cs:line 23
  </code></pre>
  
  <p>I find this strange since I have FULL permission to access this folder, but for some reason it says other-wise.</p>
  
  <p>All of the code is below:</p>
  
  <pre><code>using System;
  using System.IO;
  using System.Collections.Generic;
  
  namespace GetFilesInFolders
  {
      class Program
      {
          static void Main(string[] args)
          {
              Console.WriteLine("Enter a path: ");
              string path = Console.ReadLine();
              int UnauthorizedAccessCount = 0;//counter for file i cant access
              List&lt;string&gt; DirList = new List&lt;string&gt;();
              List&lt;string&gt; FileList = new List&lt;string&gt;();
              try
              {
                  if (Directory.Exists(path))
                  {
                      foreach (string dir in Directory.GetDirectories(path, "*", SearchOption.AllDirectories))
                      {
                          DirList.Add(dir);
                      }
                      foreach (string file in Directory.GetFiles(path, "*", SearchOption.AllDirectories))
                      {
                          FileList.Add(file);
                      }
                  }
                  else
                  {
                      Console.WriteLine("Directory does not exist!");
                      Console.ReadKey();
                      return;
                  }
              }
              catch (UnauthorizedAccessException ex)
              {
                  Console.WriteLine("{0}", ex);
              }
              if(FileList.Count == 0)
              {
                  Console.WriteLine("There were no files, or you didn't have proper permissions. (You didn't have permission to {0} files or folders", UnauthorizedAccessCount);
                  Console.ReadKey();
              }
              if(DirList.Count == 0)
              {
                  Console.WriteLine("There were no folders, or you didn't have proper permissions. (You didn't have permission to {0} files or folders", UnauthorizedAccessCount);
                  Console.ReadLine();
              }
              else
              {
                  Console.WriteLine("Here are all the folders:\n");
                  foreach (string dir in DirList)
                  {
                      Console.WriteLine(dir);
                  }
                  Console.WriteLine("Here are all the files:\n");
                  foreach (string file in FileList)
                  {
                      Console.WriteLine(file);
                  }
                  if (UnauthorizedAccessCount != 0)
                  {
                      Console.WriteLine("You had no permission to access {0} files.", UnauthorizedAccessCount);
                  }
                  else
                  {
  
                  }
                  Console.ReadLine();
              }
  
          }
      }
  }
  </code></pre>