C 文件时间戳随文件资源管理器中的SetFileTime()一起消失
我使用以下代码:C 文件时间戳随文件资源管理器中的SetFileTime()一起消失,c,windows,winapi,C,Windows,Winapi,我使用以下代码: HANDLE handle = CreateFile( //Options// ); FILETIME time; time.dwLowDateTime = time.dwHighDateTime = 0xFF; SetFileTime(handle, &time, &time, &time); 当我在FILETIME结构中使用0xFF值时,文件资源管理器会在详细信息模式(Ctrl+Shift+6)下显示空白日期。但如果我打开文件属性,它会显示日期为1
HANDLE handle = CreateFile( //Options// );
FILETIME time;
time.dwLowDateTime = time.dwHighDateTime = 0xFF;
SetFileTime(handle, &time, &time, &time);
当我在FILETIME结构中使用0xFF
值时,文件资源管理器会在详细信息模式(Ctrl+Shift+6)下显示空白日期。但如果我打开文件属性,它会显示日期为1601年1月2日
- 你能解释一下为什么这个日期显示为
值吗李>0xFF
time.dwLowDateTime=time.dwHighDateTime=0xFF创建的日期自1601年1月1日(UTC)起,代码>将为0xFF000000FF*100 ns
这大约是30.4小时,因此日期可能是1601年1月2日(可能取决于当地时区)
(参考:)您预期的日期是什么?您是否在问,为什么API会像文档中描述的那样工作?这几乎不是一个有用的问题。@Biswapriyo为什么Windows资源管理器详细信息模式不能显示那个时间?因为Windows资源管理器中可能存在错误,或者他们故意选择不显示非常旧的日期,因为这些日期无论如何都是错误的(1601年没有Windows)。有关更多详细信息,请阅读参考资料