首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++系统时间返回相同的错误值

C++系统时间返回相同的错误值
EN

Stack Overflow用户
提问于 2011-09-22 23:36:54
回答 4查看 1.9K关注 0票数 0

我想检索文件的上次写入日期。我已经为它编写了这段代码,但它总是以类似"Year“的值返回52428

代码语言:javascript
复制
int LastErrorCode;
LPCSTR Path = "C:/Users/Username/Desktop/Picture.PNG";
WIN32_FIND_DATA Information;

if(!FindFirstFile(Path, &Information))
{
    int LastErrorCode = GetLastError();
    cout << "FIND FIRST FILE FAILED" << endl;
    cout << LastErrorCode << endl;
}


SYSTEMTIME MyTime;
FILETIME MyFileTime = Information.ftLastWriteTime;


if(!FileTimeToSystemTime(&MyFileTime, &MyTime))
{
    LastErrorCode = GetLastError();
    cout << "FILE TIME TO SYSTEM TIME FAILED" << endl;
    cout << LastErrorCode << endl;
}


cout << MyTime.wYear << endl;
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-22 23:43:40

52428的十六进制值是0xCCCC,这似乎表明它尚未初始化。函数调用可能失败。检查FindFirstFileFileTimeToSystemTime的返回码(失败后调用GetLastError查找错误码)。

编辑根据对操作的编辑,FindFirstFile调用很可能是失败的调用。返回值是一个句柄(不是零/非零结果)。代码应该将结果赋给HANDLE类型的变量,然后与INVALID_HANDLE_VALUE进行比较。

还要注意,在成功调用FindFirstFile之后,代码应该使用句柄对FindClose进行相应的调用,以避免泄漏资源。

票数 6
EN

Stack Overflow用户

发布于 2011-09-22 23:45:09

请查看此函数的文档!它告诉您以下内容:

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。要获取扩展的错误信息,请调用GetLastError。

尝试检查返回值是否为非零,如果不是,则尝试调用getlasterror并在控制台上打印该错误消息,并提供此信息。

票数 5
EN

Stack Overflow用户

发布于 2011-09-22 23:51:04

过去,我使用WIN32_FILE_ATTRIBUTE_DATA而不是WIN32_FIND_DATA。然后,为了获得文件的信息,我使用GetFileAttributesEx。示例如下:

代码语言:javascript
复制
string strFile = "c:\\myfile.txt";

WIN32_FILE_ATTRIBUTE_DATA    fileInfo;
// Get the attributes structure of the file
if ( GetFileAttributesEx(strFile, 0, &fileInfo) )
{
    SYSTEMTIME        stSystemTime;
    // Convert the last access time to SYSTEMTIME structure: 
    if ( FileTimeToSystemTime(&fileInfo.ftLastAccessTime, &stSystemTime) )
    {
        printf("Year = %d,  Month = %d,  Day = %d,  Hour = %d,  Minute = %d\n", stSystemTime.wYear, stSystemTime.wMonth, stSystemTime.wDay, stSystemTime.wHour, stSystemTime.wMinute);
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7517479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档