我想实现某些文件的实时重新加载。我假设有可能以某种方式读取文件的最后修改时间。这可以与我上次加载该文件时进行比较。我会把后者留在记忆中。
如何确定文件是否在给定时间后被修改?该解决方案应适用于Windows,Mac和Linux。
更新:似乎我的问题引起了一些误解。为了使思考清楚,我要问的是找出一般文件是否被修改过。使用最后修改时间是我首先想到的,但我对任何其他解决方案都持开放态度!不幸的是,我无法打开每个文件并比较它的内容,因为我们讨论的是视频游戏的所有纹理。
答案 0 :(得分:3)
文件系统问题通常依赖于操作系统。每个操作系统都有系统调用和/或库函数来访问这些信息。在Windows上有GetFileTime
- 函数,Unix / Linux提供stat
,它也适用于Mac。也许Java提供了一些东西,但只使用标准库很难实现其他任何东西。谷歌是你最好的朋友。
答案 1 :(得分:2)
查看Boost.FileSystem,std::time_t last_write_time(const path&)
。免责声明:我不确定这个概念是否便携
答案 2 :(得分:2)
QFileInfo类提供与系统无关的文件信息。
QDateTime QFileInfo::lastModified () const
返回上次修改文件的日期和时间。
应该是相当便携的,因为这是Qt的整个想法。正式支持Windows,MacOS和Linux。
答案 3 :(得分:0)
使用stat
或fstat
系统调用。
它们产生struct stat
结构,其中包含st_atimespec
中的修改时间。
答案 4 :(得分:0)
另一个解决方案是使用inotify for Linux,或者如果你在Windows上,这可能有帮助吗?