8 #define WINDOWS_TICK 10000000
9 #define SEC_TO_UNIX_EPOCH 11644473600LL
12 #include "system/stacktrace.h"
15 time_t last_modified(const char *filepath)
17 trace_assert(filepath);
21 stat(filepath, &attr);
24 // CreateFile opens file (see flag OPEN_EXISTING)
25 HANDLE hFile = CreateFile(
28 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
37 FILETIME filetime = { 0 };
38 if (!GetFileTime(hFile, NULL, NULL, &filetime)) {
43 unsigned long long mod_time = filetime.dwHighDateTime;
45 mod_time |= filetime.dwLowDateTime;
46 // Taken from https://stackoverflow.com/a/6161842/1901561
47 return mod_time / WINDOWS_TICK - SEC_TO_UNIX_EPOCH;