Macos Qt QFileInfo.lastModified()Mac OSX错误?

Macos Qt QFileInfo.lastModified()Mac OSX错误?,macos,qt,Macos,Qt,我正在用Qt为Mac和Windows开发一个应用程序。我正在监视对文件夹X的更改。当文件从某处复制到文件夹X时,我会读取其lastModified()日期。在Windows上,它显示原始文件的上次修改日期,这是预期的。但是,在Mac上,它返回当前日期时间。当我重命名该文件时,在将其复制到文件夹X后,我会在Windows和Mac上获取原始文件的上次修改日期 那么,为什么Qt on Mac在复制文件时返回当前日期时间,并在我重命名文件后返回原始文件的修改时间?日期时间戳不够可靠,无法实现文件夹监视系

我正在用Qt为Mac和Windows开发一个应用程序。我正在监视对文件夹X的更改。当文件从某处复制到文件夹X时,我会读取其lastModified()日期。在Windows上,它显示原始文件的上次修改日期,这是预期的。但是,在Mac上,它返回当前日期时间。当我重命名该文件时,在将其复制到文件夹X后,我会在Windows和Mac上获取原始文件的上次修改日期


那么,为什么Qt on Mac在复制文件时返回当前日期时间,并在我重命名文件后返回原始文件的修改时间?

日期时间戳不够可靠,无法实现文件夹监视系统,正如您上面所暗示的那样

我花了几个月的时间在mac和windows上编写了一个可靠的文件夹监控系统。结果表明,每种方法都需要完全不同的策略

在mac上:每个文件和文件夹都可以用一个inode编号(look-in)进行唯一标识,该编号可以用于区分文件夹结构以确定更改


win:windows也有统计数据,但此数字不会持续,因此无法使用。我创建了一个使用ReadDirectoryChanges的解决方案,该解决方案是windows api的一部分。

Ok,在windows和Mac上进行了更多测试后,我观察到以下情况:当文件复制到正在监视的文件夹中时,只会发出一个信号,即创建文件时。当操作系统完成文件写入时,不会发出任何信号。有解决办法吗?