You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

File Exists函数返回结果不一致问题求助

问题原因及解决办法

出现这种差异的核心原因是**FileInfo和File.Exists的工作机制完全不同**:

  • FileInfo是带缓存的对象:当你通过GetFileInfoAsync()拿到这个对象时,它会立刻读取当时的文件状态并存在内部缓存里。如果之后文件的状态发生了变化(比如原本不存在的文件被创建了),oFile.Exists(注:你代码里写的Exists()是笔误,VB中这是属性而非方法)会直接返回缓存里的旧结果,不会主动去查询最新状态。
  • File.Exists是实时查询:每次调用这个方法时,它都会直接向操作系统询问目标路径下当前的真实文件状态,所以能拿到最新的结果。

常见触发场景:

  • 调用GetFileInfoAsync()时文件还不存在,之后在调用oFile.Exists之前,文件被其他进程或者你的代码创建出来了
  • 文件原本存在,但在FileInfo对象创建后被删除,之后又被恢复到原路径,而FileInfo的缓存没更新

解决办法:
如果想通过FileInfo获取准确的文件存在状态,需要先调用Refresh()方法刷新它的缓存,再读取Exists属性:

oFile.Refresh()
Dim b1 = oFile.Exists

内容的提问来源于stack exchange,提问作者JPScerri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 01:57:09