#include "Win32Helper.h" LONGLONG GetFileSizeFromPathW(_In_ PWCHAR Path, _In_ DWORD dwFlagsAndAttributes) { LARGE_INTEGER LargeInteger; HANDLE hHandle = INVALID_HANDLE_VALUE; hHandle = CreateFileW(Path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, dwFlagsAndAttributes, NULL); if (hHandle == INVALID_HANDLE_VALUE) return INVALID_FILE_SIZE; if (GetFileSizeEx(hHandle, &LargeInteger)) { if (hHandle) CloseHandle(hHandle); return LargeInteger.QuadPart; } return INVALID_FILE_SIZE; } LONGLONG GetFileSizeFromPathA(_In_ PCHAR Path, _In_ DWORD dwFlagsAndAttributes) { LARGE_INTEGER LargeInteger; HANDLE hHandle = INVALID_HANDLE_VALUE; hHandle = CreateFileA(Path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, dwFlagsAndAttributes, NULL); if (hHandle == INVALID_HANDLE_VALUE) return INVALID_FILE_SIZE; if (GetFileSizeEx(hHandle, &LargeInteger)) { if (hHandle) CloseHandle(hHandle); return LargeInteger.QuadPart; } return INVALID_FILE_SIZE; }