mirror of
https://github.com/Fatmike-GH/Fatpack
synced 2026-06-06 15:44:28 +00:00
56 lines
1019 B
C++
56 lines
1019 B
C++
#include "BinaryFileReader.h"
|
|
|
|
namespace BinaryFileReader
|
|
{
|
|
BinaryFileReader::BinaryFileReader(const wchar_t* fileName)
|
|
{
|
|
_buffer = nullptr;
|
|
_bufferSize = 0;
|
|
|
|
HANDLE fileHandle = CreateFileW(fileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
|
if (fileHandle == INVALID_HANDLE_VALUE)
|
|
{
|
|
Cleanup();
|
|
return;
|
|
}
|
|
|
|
_bufferSize = GetFileSize(fileHandle, NULL);
|
|
if (_bufferSize == INVALID_FILE_SIZE)
|
|
{
|
|
Cleanup();
|
|
CloseHandle(fileHandle);
|
|
return;
|
|
}
|
|
|
|
_buffer = new BYTE[_bufferSize];
|
|
|
|
DWORD bytesRead = 0;
|
|
BOOL result = ReadFile(fileHandle, _buffer, _bufferSize, &bytesRead, NULL);
|
|
CloseHandle(fileHandle);
|
|
|
|
if (result == FALSE)
|
|
{
|
|
Cleanup();
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
BinaryFileReader::~BinaryFileReader()
|
|
{
|
|
Cleanup();
|
|
}
|
|
|
|
void BinaryFileReader::Cleanup()
|
|
{
|
|
if (_buffer != nullptr)
|
|
{
|
|
delete[] _buffer;
|
|
_buffer = nullptr;
|
|
}
|
|
_bufferSize = 0;
|
|
}
|
|
}
|
|
|
|
|