トップ
新規
一覧
検索
ヘルプ
特定のファイルのサイズを取得したい
をテンプレートにして作成
開始行:
**特定のファイルの素材を取得したい [#xbf4bcc4]
ファイルのサイズを知りたいケースがたまにあります。~
決して難しい処理ではありませんが、サブルーチン化しておく...
なお、この関数は2G以上のファイルのサイズを取ってこれるよ...
__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;
}
終了行:
**特定のファイルの素材を取得したい [#xbf4bcc4]
ファイルのサイズを知りたいケースがたまにあります。~
決して難しい処理ではありませんが、サブルーチン化しておく...
なお、この関数は2G以上のファイルのサイズを取ってこれるよ...
__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;
}
ページ名: