System.IO.File.Exists 和FileInfo类Exists 属性的区别?为何前者返回文件存在,后者返回不存在

我本地有一个文件是 msi文件, 文件确实是存在。 路径 在 运行 中可以打开 !
但是 FileInfo 的 Exists属性返回该文件不存在。 但是System.IO.File.Exists 返回存在!
我看了 他们反编译后的大概的代码, 
他们各自似乎都是通过这个函数来获得
WIN32_FILE_ATTRIBUTE_DATA 
然后从他的 属性中获得的。 
internal static int FillAttributeInfo(string path, ref Win32Native.WIN32_FILE_ATTRIBUTE_DATA data, bool tryagain, bool returnErrorOnNotFound)
{


但是我现在很郁闷, 为什么会不一样?
 
 
以下是MSN上的解释,看看你文件夹的权限
FileInfo.Exists:如果该文件存在,则为 true;如果该文件不存在或如果该文件是目录,则为 false。

File.Exists():如果调用方具有要求的权限并且 path 包含现有文件的名称,则为 true;否则为 false。如果 path 为 空引用(在 Visual Basic 中为 Nothing)、无效路径或零长度字符串,则此方法也将返回 false。如果调用方不具有读取指定文件所需的足够权限,则不引发异常并且该方法返回 false,这与 path 是否存在无关。 

你可能感兴趣的:(C#)