Windows 为每个文件或文件夹存储三个时间戳:
- 创建时间(首次创建项目的时间/日期)
- 上次修改时间(上次写入文件的时间)
- 上次访问时间(上次访问文件的时间)
有多种方法可以读取这些时间戳,但使用本机 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 中默认禁用。您可以使用注册表设置启用它。