我正在使用一个非常常见的SaveAs对话框(在Delphi Win32 XE2中,系统是Win 7/64),设置OFN_OVERWRITEPROMPT(或Delphi包装器的等效dlgSave.Options := [ofPathMustExist, ofOverwritePrompt];
。所以,如果我选择一个现有文件,对话框要求确认覆盖该文件。
除了一个愚蠢的事情之外,一切都正常:当我选择一个文件,然后在同一个对话框中删除该文件,然后按OK,对话框仍然会询问是否可以覆盖(已删除的)文件。显然,对话框根据预加载的列表而不是文件系统检查文件是否存在。问题不是特定于Delphi,即使在记事本中也很容易显示:
该文件不再存在,但您仍然会收到覆盖提示。
任何人都可以建议一种方法来解决这个轻微但烦人的Windows错误吗?我假设可能需要一些消息处理/回调/挂钩?在模态SaveAs对话框打开时检查代码中文件是否存在的方法?