GetFileTime返回旧时间

时间:2014-11-19 08:37:55

标签: file winapi time mfc

我想从服务器下载文件,如果它比我光盘上的文件更新。

我写了以下代码:

 bool bDownload = true;
        HANDLE hFile = CreateFile(strFileLocal, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
        if (hFile != INVALID_HANDLE_VALUE)
        {
            FILETIME ftLocal = { 0 };
            FILETIME ftWrite = { 0 }; // only for testing
            GetFileTime(hFile, &ftLocal, NULL, &ftWrite);

            FILETIME ftRemote = arrTimes[i]; //get size from server
            if (ftLocal.dwLowDateTime >= ftRemote.dwLowDateTime && ftLocal.dwHighDateTime >= ftRemote.dwHighDateTime)
            {
                bDownload = false;
            }

            CloseHandle(hFile);
        }

完成此操作后,我下载文件并将文件时间从服务器设置为文件:

 //set file date
            HANDLE hFile = CreateFile(strFileLocal, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
            if (hFile != INVALID_HANDLE_VALUE)
            {
                FILETIME ftRemote = arrTimes[i];
                SetFileTime(hFile, &ftRemote, NULL, &ftRemote);
                CloseHandle(hFile);
            }

现在我的问题: 如果我用新的创建时间替换磁盘上的文件,GetFileTime将读取我设置的时间。但是在Windows中的文件浏览器中,文件具有新的创建时间。

为了测试我试着读上次写作时间。但这与创作时间相同。 非常感谢。

如何解决此问题?我有什么问题吗?

0 个答案:

没有答案