C++如何检查文件的最后修改时间
问题描述:
我从文件缓存一些信息,我希望能够定期检查文件的内容是否已被修改,以便我可以再次读取该文件以获取新内容如果需要的话。C++如何检查文件的最后修改时间
这就是为什么我想知道如果有一种方式来获得C++中的文件的最后修改时间。
答
没有特定语言的方式做到这一点:但是操作系统提供所需的功能。
如果您使用的是UNIX系统中,该stat
通话是你所需要的。在Visual Studio下有一个为Windows提供的等效_stat
调用。因此,这里是代码,将两个工作:
#include <sys/types.h>
#include <sys/stat.h>
#ifndef WIN32
#include <unistd.h>
#endif
#ifdef WIN32
#define stat _stat
#endif
auto filename = "/path/to/file";
struct stat result;
if(stat(filename.c_str(), &result)==0)
{
auto mod_time = result.st_mtim;
...
}
+0
那么我可以使用的任何东西都可以在UNIX和Windows上使用? :/ –
+0
修改为添加Windows支持 – Smeeheey
好的旧C'stat'调用有什么问题? –
@ Jean-FrançoisFabre,这是一个unix系统调用,所以它不是跨平台的 – SingerOfTheFall
@SingerOfTheFall这就是为什么我没有回答。 –