QFileSystemWatcher类提供了监测文件和目录改变的接口。
QFileSystemWatcher监测给定路径的文件或者目录在文件系统中的改变。
监测目录可调用的接口:
- addPath()监测一个给定的文件或者路径;
- addPaths()监测多条路径等;
移除目前监测的文件的接口:
- removePath()
- removePaths()
QFileSystemWatcher检查每一条添加到其监测的路径。QFileSystemWatcher监测的文件路径可以通过files()来获取,检查文件的目录可以通过directories()来获取。
监测的信号:
- fileChanged()信号表示有文件被修改了,或者被重命名或者从磁盘中移除了。
- directoryChanged()信号表示目录或者目录的内容被修改或者移除了。
- 在运行Linux kernel的系统中没有通知支持,文件系统包含的监测路径也不能被卸载。
- Windows CE 默认不支持目录的监测,这取决于文件系统的驱动是否已经安装了。
- 监测文件和目录的改变会消耗系统的资源,这就表示你的进程可以同步监测的文件和目录是有一个数量上的限制的。在所有的BSD变量中,例如,打开文件描述符是每个文件监测需要的。一些系统默认可以打开的文件描述符的数量是256。这就表示addPath()和addPaths()可能会失败当你想添加更多的文件和目录到你的文件监测器中。同时,你的进程可能还有别的文件描述符打开了由于可能有一些文件已经在被监测了,这些也会影响总体的打开文件描述符的数量。OSX使用的是不同的后端,也没有提供受到这个限制的问题。