gpt4 book ai didi

c++ - 如何在 C++ 中为 Windows 7 x64 的特定文件提取 "Date column"值

转载 作者:行者123 更新时间:2023-11-28 03:12:02 25 4
gpt4 key购买 nike

我想提取特定文件的日期 值,并将其与 Visual C++ 中的修改日期和创建日期进行比较。

我看到我可以提取创建日期修改日期,但我对日期一无所知。

我用有缺陷的软件更改了一些文件,唯一仍然有效的列是日期。我怎样才能提取它?

我使用的是 Windows 7 x64。

在这里,我只看到了st_atime、st_ctime、st_mtime: http://msdn.microsoft.com/en-us/library/14h5k7ff.aspx

最佳答案

Windows 为每个文件或文件夹存储三个时间戳:

  • 创建时间(项目首次创建的时间/日期)
  • 最后修改时间(文件最后写入的时间)
  • Last access time(上次访问文件的时间)

有多种方法可以读取这些时间戳,但使用 native Win32 API,您可以执行以下操作:

LPCWSTR pszFileName = L"c:\\path\\to\\myfile.txt";
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(pszFileName, &wfd);
if (hFind != INVALID_HANDLE_VALUE)
{
FindClose(hFind);
// timestamps can now be found at:
// wfd.ftCreationTime
// wfd.ftLastAccessTime
// wfd.ftLastWriteTime
}

您可以使用 FileTimeToSystemTime() 之类的函数将 FILETIME 值(它只是自特定日期以来的滴答计数)转换为更有用的 SYSTEMTIME 提供日、月、年、小时、分钟等的结构

注意:文件夹和文件的“上次修改时间”也会更新,并指示文件最后一次直接在该文件夹内修改的时间。对文件夹时间戳的更改不会传播到父文件夹。

注意 2:“上次访问时间”或多或少已被弃用,并且在较新版本的 Windows 中默认禁用。您可以使用注册表设置启用它。

关于c++ - 如何在 C++ 中为 Windows 7 x64 的特定文件提取 "Date column"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18169654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com