-
-
[原创]VC控制台修改文件时间属性
-
发表于:
2013-6-6 18:16
7263
-
最近对VC实现修改文件创建、访问、修改时间属性的方法产生了兴趣,我便在网上查了这方面的教程,但是却总是看不明白,有的不够简洁。例如在一些文章中提到了使用FindFirstFile()函数和WIN32_FIND_DATA结构,我认为完全没有必要,因为到最后时我们需要用到SetFileTime()函数,而这个函数和FindFirstFile()是无关的,我们只需用到SYSTEMTIME和FILETIME结构体。如果感兴趣的话,你可以先看看微软的官方帮助和支持文档:FILETIME 结构使用信息,里面讲的不仅仅是FILETIME 结构的使用,很值得一看。
struct _FILETIME { //结构体定义
DWORD dwLowDateTime;
DWORD dwHighDateTime;}
FILETIME;
//FILETIME 结构表示 1601 年 1 月 1 日以来 100 纳秒为间隔数。结构包含的这两个DWORD值组合在一起
//形成一个 64 位值的 32 位值。
struct _SYSTEMTIME { //这个结构体的成员实际上查查字典就知道什么意思了,呵呵
WORD wYear ; //年
WORD wMonth ;//月
WORD wDayOfWeek ;
//星期,0=星期日,1=星期一...
WORD wDay ; //日
WORD wHour ; //时
WORD wMinute ; //分
WORD wSecond ; //秒
WORD wMilliseconds ; //毫秒
}SYSTEMTIME;
FILETIME Filetime;
SYSTEMTIME Systemtime;
Systemtime.wDay = 1;
Systemtime.wYear = 1999;
//一定要大于1601,因为FILETIME的时间是从1601年1月1日开始
//如果不大于1601,SetFileTime()会返回false,GetLastError()
//返回78 (无效参数)
Systemtime.wMonth = 1;
Systemtime.wHour = 1;
Systemtime.wMinute =1;
Systemtime.wDayOfWeek = 1;
Systemtime.wSecond = 1;
Systemtime.wMilliseconds = 1;
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课