【问题标题】:QFileSystemWatcher: failed to add paths C: (can't watch Windows drives)QFileSystemWatcher:添加路径失败 C:(无法观看 Windows 驱动器)
【发布时间】:2012-05-19 18:49:26
【问题描述】:

以下代码引发failed to add paths

auto f = new QFileSystemWatcher();
f->addPath("C:");
// Also tried f->addPath("C:/") and f->addPath("C:\\")

添加像C:/folder 这样的路径可以正常工作。

所以我看不到 Windows 驱动器。

【问题讨论】:

  • 技术上是的。它出现在应用程序日志中。但是这个警告会导致应用程序错误,因此我无法查看驱动器。
  • 你有 C: 的读取权限吗?
  • >>您对 C: 有读取权限吗?是的
  • 试试"C:/windows" 看看是否可行。也许 windows 文件夹不是“可观看的”,所以驱动器 C 也失败了。
  • "C:\\""C:/" 表单在我这边使用 mingw 和 MSVC 的 Qt 4.7.3 和 4.8 工作正常,没有任何警告或应用程序日志。你的版本是什么?你能做一个发布版本并“以管理员身份运行”吗?

标签: c++ file qt


【解决方案1】:

可以同时监视的文件和目录的数量存在系统相关限制。如果已达到此限制,则不会将路径添加到文件系统观察程序,并且将向 stderr 打印警告消息,即failed to add paths

【讨论】:

  • 绝对不是,因为我在添加第一个目录时收到此警告。我可以添加 10 个其他非驱动器目录,QFileSystemWatcher 将毫无问题地工作。
  • 但是 C:\\ 仍然可能太大而无法监控 - 我想这是一个递归手表,因此 C:\\ 中的目录和文件也很重要。但这只是基于@spyke 的回答的猜测。
  • @Viktor,它不是递归的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 2019-03-04
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多