ファイルサイズの取得

Win32 APIを使用してファイルサイズを取得する方法です。

GetFileSize()を使用しますが、ファイルハンドルが必要になるため一度開く必要があります。
ちょっとメンドウですね。

↓サンプルです。

DWORD GetFileSizeEx(TCHAR *path)
{
HANDLE hFile;
DWORD size_low,size_high;

if(path == NULL){
return 0;
}

hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile == INVALID_HANDLE_VALUE){
return 0;
}

size_low = GetFileSize(hFile,&size_high);

CloseHandle(hFile);

return size_low;
}