mirror of
https://github.com/vxunderground/VX-API
synced 2024-06-28 09:41:13 +00:00
Fix GetFileSize for over 2GB
This commit is contained in:
parent
b993ee3241
commit
537cecf0e0
@ -1,33 +1,37 @@
|
||||
DWORD RfGetFileSizeFromPathDisposeHandleW(PWCHAR Path, DWORD dwFlagsAndAttributes)
|
||||
LONGLONG RfGetFileSizeFromPathDisposeHandleW(PWCHAR Path, DWORD dwFlagsAndAttributes)
|
||||
{
|
||||
DWORD Size = ERROR_SUCCESS;
|
||||
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;
|
||||
|
||||
Size = GetFileSize(hHandle, NULL);
|
||||
if (GetFileSizeEx(hHandle, &LargeInteger))
|
||||
{
|
||||
if (hHandle)
|
||||
CloseHandle(hHandle);
|
||||
return LargeInteger.QuadPart;
|
||||
}
|
||||
|
||||
if (hHandle)
|
||||
CloseHandle(hHandle);
|
||||
|
||||
return Size;
|
||||
return INVALID_FILE_SIZE;
|
||||
}
|
||||
|
||||
DWORD RfGetFileSizeFromPathDisposeHandleA(PCHAR Path, DWORD dwFlagsAndAttributes)
|
||||
LONGLONG RfGetFileSizeFromPathDisposeHandleA(PCHAR Path, DWORD dwFlagsAndAttributes)
|
||||
{
|
||||
DWORD Size = ERROR_SUCCESS;
|
||||
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;
|
||||
|
||||
Size = GetFileSize(hHandle, NULL);
|
||||
|
||||
if (hHandle)
|
||||
CloseHandle(hHandle);
|
||||
|
||||
return Size;
|
||||
if (GetFileSizeEx(hHandle, &LargeInteger))
|
||||
{
|
||||
if (hHandle)
|
||||
CloseHandle(hHandle);
|
||||
return LargeInteger.QuadPart;
|
||||
}
|
||||
|
||||
return INVALID_FILE_SIZE;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user