【问题标题】:WritePrivateProfileString produces ERROR_FILE_NOT_FOUNDWritePrivateProfileString 产生 ERROR_FILE_NOT_FOUND
【发布时间】:2019-10-31 21:29:31
【问题描述】:

我的软件正在写入 c:\users...\documents 中的一个 ini 文件,我不时收到用户的错误报告,其中 WritePrivateProfileString 调用返回 false,然后 GetLastError 返回 2 (ERROR_FILE_NOT_FOUND)。

我不明白这是怎么发生的,我也无法重现它,因为 WritePrivateProfileString 应该在文件丢失时创建文件。 如果目录不存在,则错误为 ERROR_PATH_NOT_FOUND,如果由于权限原因无法创建文件,则错误为 ERROR_ACCESS_DENIED。

那么有谁知道这个函数为什么/什么时候会产生这个错误?我该如何处理呢?如:如有必要,我依赖正在创建的文件。

【问题讨论】:

  • 请提供邮政编码。
  • 注意 提供此功能仅是为了与 16 位版本的 Windows 兼容。 来自文档。为此使用定制的 ini 文件库。
  • 向用户询问他们的反恶意软件的失败之处。也许有一个反复出现的模式。
  • @DavidHeffernan 我们正在使用的ini 是用于第三方应用程序的,我们无法控制它。由于 ini 不是标准化格式,使用 ini 文件库并不能保证它生成的格式可以被其他应用程序实际使用。简而言之:这些功能不会消失,MS 非常清楚这一点。
  • @MichaelChourdakis 要我发布代码,我必须能够重现这个问题,这正是我想要寻求帮助的问题...... ;)

标签: windows winapi ini controlled-folder-access


【解决方案1】:

我想我自己可能已经找到了答案。 当 Windows 安全 -> 勒索软件保护 -> 启用受控文件夹访问且应用程序未列入白名单时,似乎会出现此问题。

对于这种情况,ERROR_FILE_NOT_FOUND 是一个非常令人困惑的错误消息,恕我直言......

【讨论】:

  • 我暂时不接受这个答案,以防其他人想出另一种方法来重现此错误。
猜你喜欢
  • 2023-03-06
  • 2021-01-05
  • 1970-01-01
  • 2011-07-01
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多