报文分发程序需提供这么一个功能: Qt对下载文件的时间修改(ftp,http下载)
当我们下载一个文件到本地后,文件的相关属性(如修改时间,创建时间,访问时间)都会修改为下载后的系统时间。
而报文分发程序中想让下载到本地的文件保留源文件的修改时间,此时我们必须手动对文件的属性就行操作。
但是Qt做不了,只能通过在Qt程序中调用系统命令。可以直接包括#include或者#include 然后调用系统函数。
Qt中没有相应的函数,修改文件时间这种操作是和平台相关的,所以如果程序是需要跨平台的话,需要进行条件编译。不同的平台下调用不同的系统函数进行设置。
其中涉及的API:
windows下:_utime()
linux: utime()
下面介绍实现需要的函数:
PS: 不同操作系统下实现都很类似,只是函数名变了个样。
int _utime( const char *filename, struct _utimbuf *times );//Windows
int utime ( const char *filename, struct utimbuf *times );//linux
形参介绍:
filename 文件路径
times 保存时间数值的指针
_utimbuf结构体的
(Windows)
struct _utimbuf
{
time_t actime; /* Access time */
time_t modtime; /* Modification time */
};
(other OS)