title: C# File.Exists returns false, file does exist
body: <p>Using VS 15, C# with .Net 4.5.2<br>
  The computer is on an AD network, with the ad name "AD".<br>
  This problem happens with AD normal-user rights, AD admin rights, and local admin rights. It doesn't matter what rights the program gets, the same problem occurs.</p>
  
  <p>Our test file is "<strong>C:/windows/system32/conhost.exe</strong>".<br>
  The file above exists, it is very much existing. I can see it with explorer.  </p>
  
  <p>This is the file in explorer:<br>
  <a href="https://i.stack.imgur.com/eU9ix.png" rel="noreferrer"><img src="https://i.stack.imgur.com/eU9ix.png" alt="enter image description here"></a></p>
  
  <p>This is the file properties:<br>
  <a href="https://i.stack.imgur.com/ZXQc5.png" rel="noreferrer"><img src="https://i.stack.imgur.com/ZXQc5.png" alt="enter image description here"></a></p>
  
  <p>You can see that it is there, right?<br>
  The following cmd command checks if the file exists:</p>
  
  <pre><code>IF EXIST "C:\windows\system32\conhost.exe" (echo does exist) ELSE (echo doesnt exist)
  </code></pre>
  
  <p>It returns "<strong>does exist</strong>" as promised.</p>
  
  <p>The following C# code checks if the file exists:</p>
  
  <pre><code>FileInfo file = new FileInfo("C:/windows/system32/conhost.exe");
  MessageBox.Show(file.Exists + "");
  </code></pre>
  
  <p>This returns "<strong>False</strong>".</p>
  
  <p>This code also returns "<strong>False</strong>":</p>
  
  <pre><code>MessageBox.Show(File.Exists("C:/windows/system32/conhost.exe") + "");
  </code></pre>
  
  <p>This code also doesn't find it:</p>
  
  <pre><code>foreach (string file in Directory.GetFiles("C:/windows/system32/"))
  {
      //conhost is NEVER mentioned, like it doesn't exist
  }
  </code></pre>
  
  <p>This code also doesn't find it:</p>
  
  <pre><code>foreach (string file in Directory.EnumerateFiles("C:/windows/system32/"))
  {
      //conhost is NEVER mentioned, like it doesn't exist
  }
  </code></pre>
  
  <p>False, False, False:  </p>
  
  <pre><code>MessageBox.Show(File.Exists("C:/windows/system32/conhost.exe") + "");
  MessageBox.Show(File.Exists("C:\\windows\\system32\\conhost.exe") + "");
  MessageBox.Show(File.Exists(@"C:\windows\system32\conhost.exe") + "");
  </code></pre>
  
  <p>What am I doing wrong?<br>
  Extra note: I copied conhost to C:\conhost.exe, and my program can find that without problem. My program also finds other files in system32, just not conhost and a few others. For example, it finds "connect.dll" which is in system32, so it's not the directory's read permission.<br>
  More extra notes: conhost.exe and connect.dll has the same security attributes (Security tab in the file properties).</p>