我似乎无法使用 winapi 函数获得可靠的时间戳。例如:
int main(int argc, char *argv[]) { 处理文件; BY_HANDLE_FILE_INFORMATION 信息; SYSTEMTIME 系统时间; 文件 = CreateFile("test.txt",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); GetFileInformationByHandle(file,&finfo); FileTimeToSystemTime(&finfo.ftLastWriteTime, &systime); printf(" %s %02d:%02d:%02d %d/%d/%d\n", "test.txt", systime.wHour,systime.wMinute,systime.wSecond,systime.wDay,systime.wMonth ,systime.w 年); }
对我的所有文件都毫无意义,例如:
测试.txt 00:03:30 33/5/3
wDay 的值似乎超出了 1-31 的范围,并且时间和日期完全错误。BY_HANDLE_FILE_INFORMATION 中的所有其他值(如名称和大小)都是正确的,在我的完整代码中,我检查所有函数的错误,但它们都返回通过。有人知道我在做什么错吗?