7

我想实现某些文件的实时重新加载。我假设有可能以某种方式读取文件的最后修改时间。这可以与我上次加载该文件的时间进行比较。我会把后者留在记忆中。

如何确定文件自给定时间以来是否被修改?该解决方案应该适用于 Windows、Mac 和 Linux。

更新:似乎我的问题引起了一些误解。为了清楚起见,我想知道是否总体上修改了文件。使用最后修改的时间正是我首先想到的,但我对任何其他解决方案持开放态度!不幸的是,我无法打开每个文件并比较其内容,因为我们谈论的是视频游戏的所有纹理。

4

5 回答 5

3

看看Boost.FileSystemstd::time_t last_write_time(const path&). 免责声明:我不确定这个概念的便携性如何

于 2013-03-18T13:33:46.400 回答
3

文件系统问题通常取决于操作系统。每个操作系统都有系统调用和/或库函数来访问这些信息。在 Windows 上有GetFileTime-function,Unix/Linux 提供stat,它也应该适用于 Mac。也许 Java 提供了一些东西,但是仅使用标准库很难实现其他任何东西。谷歌是你最好的朋友。

于 2013-03-18T13:35:35.573 回答
2

QFileInfo 类提供与系统无关的文件信息。

QDateTime QFileInfo::lastModified () const

返回上次修改文件的日期和时间。

应该是相当可移植的,因为这就是 Qt 的全部想法。正式支持 Windows、MacOS 和 Linux。

于 2013-03-18T13:44:13.790 回答
0

使用statfstat系统调用。它们产生一个struct stat包含修改时间的结构st_atimespec

于 2013-03-18T13:32:29.010 回答
0

另一种解决方案是在 Linux 上使用 inotify,或者如果你在 Windows 上,这可能会有所帮助吗?

Windows上有类似inotify的东西吗?

于 2015-02-11T00:16:56.617 回答