使用C ++获取Windows文件信息

有什么办法可以检查使用C ++的Windows文件的一些属性? 想要的forms是诸如上次访问date,MIMEtypes,…

对于其他一些信息抽取,我正在使用Boost文件系统。

提前致谢

对于文件修改日期,您可以直接使用Windows API( GetFileTime() )或使用boost::filesystem::last_write_time()

至于MIME类型,据我所知,没有真正的API。 您将基本上必须读取注册表项HKEY_CLASSES_ROOT\.<yourextension>并查找值Content Type 。 如果有,则包含为扩展名设置的MIME类型。

C ++和boost的目标是跨平台的。 语言,标准库和boost库试图从你那里抽象出各种环境的特质,所以你所说的目标本质上是与编写标准 C ++有争议的。

但是如果你知道你将在Windows上专门编译和运行,你可以把你的代码包装进去

 #ifdef _WIN32 /* code here */ #endif 

并直接调用BOOL WINAPI GetFileAttributesEx(...)

GetFileAttributesEx是kernel32.dll的一部分,它被加载到每个进程中,所以如果你在你的翻译单元中包含<windows.h> ,你应该能够编译和链接它。

为了获得最后的访问时间,你总是可以使用stat() ,它可以在任何操作系统上使用(也不需要Boost)。

至于MIME类型,我不认为没有分析文件内容的简单方法。