title: What is difference between File.Exists("") and FileInfo exists
body: <p>I have an *.exe file in \ProgramFiles(x86)\MyAppFolder.</p>
  
  <p>In x86 application I check if the file exists (64 bit system).
  simple:</p>
  
  <pre><code>bool fileExists = File.Exists(@"\ProgramFiles(x86)\MyAppFolder\Manager.exe");
  </code></pre>
  
  <p>The result is:
  "fileExists == false" (the file is really there). It's Virtualization as I understand.That issue described <a href="https://stackoverflow.com/questions/2160699/check-if-file-exist-on-64-bits-system-using-file-exists">here</a> Its ok.
  But next code: </p>
  
  <pre><code>bool fileExists = new FileInfo("\\Path").Exists;
  </code></pre>
  
  <p>"fileExists == true"</p>
  
  <p>Why is the result different in 1st and 2nd cases?</p>
  
  <pre><code>var controller = new ServiceController(Product.ServiceName);
  _manager.Enabled = controller.Status == ServiceControllerStatus.Running;
  
  var info = new DirectoryInfo(Assembly.GetExecutingAssembly().Location);
  
  var s = File.Exists(@"D:\TFS\GL_SOURCES\Teklynx_LPM\Dev\Server\Debug\Manager.exe");
  
  string pathToManager = string.Empty;
  
  if (info.Parent != null)
  {
      var pathToModule = info.Parent.FullName;
      pathToManager = Path.Combine(pathToModule,"Manager.exe").Replace(" ",string.Empty);
  }
  </code></pre>
  
  <p>//works good</p>
  
  <pre><code>var fileInfo = new FileInfo(pathToManager);
  var managerSeparator = new ToolStripSeparator()
  {
      Visible = _manager.Visible = fileInfo.Exists // true
  };
  </code></pre>
  
  <p>//Does not work</p>
  
  <pre><code>var managerSeparator = new ToolStripSeparator()
  {
      Visible = _manager.Visible = File.Exists(pathToManager ) // false
  };
  </code></pre>
  
  <p>Thanks!  </p>