【发布时间】:2014-09-04 05:50:21
【问题描述】:
我正在使用 QFileSystemWatcher 递归地监视一个目录。如果正在监视其子目录,我无法以编程方式或手动重命名/删除父目录。
尝试通过系统手动重命名时,我收到一个消息框,提示“操作无法完成,因为其中的文件夹/文件已在另一个程序中打开”,并且以编程方式重命名失败。
我遇到了这些类似的错误,但没有解决方法:
http://qt-project.org/forums/viewthread/10530
https://bugreports.qt-project.org/browse/QTBUG-7905
我没看。和..如上面的链接中所说,但目录仍然被锁定。
如果以编程方式重命名.. 我尝试了一种解决方法: 1.在重命名父之前从观察者中删除所有子目录路径。 2. 重命名父级。 3. 再次添加子目录路径。
但是我的程序在第一步也失败了。 QFileSystemWatcher::removePath() 在尝试删除子目录路径时返回 false,并且 QFileSystemWatcher::directories() 在被监视的路径中显示该目录。与此处发布的相同https://bugreports.qt-project.org/browse/QTBUG-10846
由于第 1 步在这里失败,第 2 步也失败了,我无法重命名父目录。
我正在使用 Qt5.2.1 和 Windows 7。
请帮助我解决问题。
【问题讨论】:
标签: qt qt5.2 qfilesystemwatcher