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 是否存在无关。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值