代码之家  ›  专栏  ›  技术社区  ›  Myforwik

winapi-无意义文件时间戳?

  •  0
  • Myforwik  · 技术社区  · 17 年前

    int main(int argc, char *argv[])
    {
    HANDLE file;
    BY_HANDLE_FILE_INFORMATION finfo;
    SYSTEMTIME systime;
    
    file = 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.wYear);
    }
    

    对我的所有文件提供无意义,如:

    test.txt   00:03:30 33/5/3
    

    wDay的值似乎超出范围1-31,并且时间和日期完全错误。BY_HANDLE_FILE_信息中的所有其他值(如名称和大小)都是正确的,我在完整代码中检查所有函数的错误,但它们都返回passed。有人知道我做错了什么吗?

    1 回复  |  直到 17 年前
        1
  •  0
  •   Greg Hewgill    17 年前

    filesize.QuadPart . 尝试将其从格式字符串和参数列表中删除,看看是否有效。

    如果有帮助,请在中查找用于64位数量的正确格式字符串 printf() .