2022-07-17 18:57:06 +00:00
|
|
|
LONGLONG RfGetFileSizeFromPathDisposeHandleW(PWCHAR Path, DWORD dwFlagsAndAttributes)
|
2022-07-17 18:20:30 +00:00
|
|
|
{
|
2022-07-17 18:57:06 +00:00
|
|
|
LARGE_INTEGER LargeInteger;
|
2022-07-17 18:20:30 +00:00
|
|
|
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;
|
|
|
|
|
2022-07-17 18:57:06 +00:00
|
|
|
if (GetFileSizeEx(hHandle, &LargeInteger))
|
|
|
|
{
|
|
|
|
if (hHandle)
|
|
|
|
CloseHandle(hHandle);
|
2022-07-17 19:00:04 +00:00
|
|
|
|
2022-07-17 18:57:06 +00:00
|
|
|
return LargeInteger.QuadPart;
|
|
|
|
}
|
2022-07-17 18:20:30 +00:00
|
|
|
|
2022-07-17 18:57:06 +00:00
|
|
|
return INVALID_FILE_SIZE;
|
2022-07-17 18:20:30 +00:00
|
|
|
}
|
|
|
|
|
2022-07-17 18:57:06 +00:00
|
|
|
LONGLONG RfGetFileSizeFromPathDisposeHandleA(PCHAR Path, DWORD dwFlagsAndAttributes)
|
2022-07-17 18:20:30 +00:00
|
|
|
{
|
2022-07-17 18:57:06 +00:00
|
|
|
LARGE_INTEGER LargeInteger;
|
2022-07-17 18:20:30 +00:00
|
|
|
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;
|
|
|
|
|
2022-07-17 18:57:06 +00:00
|
|
|
if (GetFileSizeEx(hHandle, &LargeInteger))
|
|
|
|
{
|
|
|
|
if (hHandle)
|
|
|
|
CloseHandle(hHandle);
|
2022-07-17 19:00:04 +00:00
|
|
|
|
2022-07-17 18:57:06 +00:00
|
|
|
return LargeInteger.QuadPart;
|
|
|
|
}
|
|
|
|
|
|
|
|
return INVALID_FILE_SIZE;
|
2022-07-17 18:20:30 +00:00
|
|
|
}
|