如何在c++17中将std::filesystem::file_time_type转换为FILETIME形式?
我期待获得代码示例/片段,将 std::filesystem::file_time_type 的变量转换为 c++17/c++11 中 FILETIME 类型的结构。
#include <Windows.h>
#include <chrono>
#include <filesystem>
FILETIME
file_clock_to_FILETIME(std::filesystem::file_time_type tp)
{
const uint64_t rawCount = tp.time_since_epoch().count();
FILETIME result;
result.dwLowDateTime = static_cast<DWORD>(rawCount);
result.dwHighDateTime = static_cast<DWORD>(rawCount >> 32);
return result;
}
这是有效的,因为
file_time_type
和 FILETIME
共享相同的纪元和精度。因此,只需提取 64 位整数类型并将其填充到 FILETIME
数据结构中即可。