文件时间戳在文件资源管理器中使用SetFileTime()消失

时间:2018-02-05 15:35:05

标签: c windows winapi

我使用此代码:

HANDLE handle = CreateFile( //Options// );
FILETIME time;
time.dwLowDateTime = time.dwHighDateTime = 0xFF;
SetFileTime(handle, &time, &time, &time);

当我在SetFileTime()的FILETIME结构中使用0xFF值时,文件资源管理器在详细模式下显示空白日期( Ctrl + Shift + 6 )。但是如果我打开文件属性,它会将日期显示为02 Jan 1601。

  • 你能解释为什么这个日期显示0xFF值吗?

1 个答案:

答案 0 :(得分:3)

time.dwLowDateTime = time.dwHighDateTime = 0xFF;创建的日期自1601年1月1日(UTC)起为100 ns000000FF * 100 ns。

这大约是30.4小时,因此日期可能是1601年1月2日(可能取决于当地时区)。

(参考:FILETIME structure (Windows)