ファイルのサイズを知りたいケースがたまにあります。
決して難しい処理ではありませんが、サブルーチン化しておくと便利です。
なお、この関数は2G以上のファイルのサイズを取ってこれるように、戻り値が「__int64」型になっています。
__int64 __fastcall subGetFileSize(AnsiString strFPATH) { // 指定ファイルのサイズを取得する __int64 iFSIZE; char cPATH[MAX_PATH]; WIN32_FIND_DATA fdDAT; HANDLE hFILE; try { // ファイルパスをコピー strcpy(cPATH, strFPATH.c_str()); // ファイル情報を取得 hFILE = ::FindFirstFile(cPATH, &fdDAT); // サイズを求める iFSIZE = fdDAT.nFileSizeHigh; iFSIZE = iFSIZE << 32; iFSIZE += fdDAT.nFileSizeLow; // ファイルを閉じる if (!::FindClose(hFILE)) { throw ("Error"); } } catch(...) { // エラーなら-1を返す return -1; } return iFSIZE; }