【发布时间】:2024-01-09 18:46:02
【问题描述】:
我想知道用户是否打开了文件以供阅读(双击或使用...打开),我正在 Windows 上使用 Qt Creator 编写 C++ 应用程序,经过一些研究我发现 QFileSystemWatche,但只有在特定文件夹中发生更改时它才会让我知道。
void QFileSystemWatcher::fileChanged ( const QString & path ) [信号] 当指定路径的文件是 修改、重命名或从磁盘中删除。
如何知道文件是否被打开?或者有没有办法在打开或关闭文件时修改文件?
有什么建议!!!
【问题讨论】:
-
@tune2fs 我的目的是了解用户单击或在程序中打开文件的那一刻是否打开了文件,一些如何将打开它的信号连接到插槽,我希望这是更清晰。
-
“已打开文件”的问题没有明确定义;例如,如果文件驻留在共享驱动器(NAS 存储)上,而另一台远程计算机访问它,您将无法收到通知,因为没有网络文件系统为此目的提供服务器推送回调。另外,如果有人打开文件并立即再次关闭,通知您是否正确?一般来说......这是您可以通过系统跟踪/调试实用程序(SysInternals procmon / filemon)提取的信息 - 出于某种原因。
-
正在为创建的本地文件工作,我需要在用户打开它时处理通知,这是我的观点。
标签: c++ file qt4 signals-slots qfilesystemwatcher