<Return[G]><Top>

GetFileSize

Declare Function Api_GetFileSize& Lib "kernel32" Alias "GetFileSize" (ByVal hFile&, lpFileSizeHigh&)

Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long

指定されたファイルのサイズをバイト単位で取得する。

パラメータ
hFile
    サイズを取得するべきファイルのハンドルを指定する。

    このハンドルは、GENERIC_READ または GENERIC_WRITE アクセス権を備えていなければならない。
lpFileSizeHigh
    1 個の変数へのポインタを指定する。

    関数から制御が返ると、この変数に、ファイルサイズの上位ダブルワード(high-order doubleword)が格納される。

    上位ダブルワードが不要な場合(調べるファイルが 4GB より小さいことがわかっていれば)、NULL を指定できる。
 

戻り値
    関数が成功すると、ファイルサイズの下位ダブルワード(low-order doubleword)が返る。

    また、lpFileSizeHigh パラメータが NULL ではない場合、このパラメータが指す変数にファイルサイズの上位ダブルワードが格納される。
    lpFileSizeHigh パラメータが NULL のときに関数が失敗すると、-1 が返る。

    拡張エラー情報を取得するには、GetLastError 関数を使う。
    lpFileSizeHigh パラメータが NULL ではないときに関数が失敗すると、-1 が返る。

    このとき、GetLastError 関数は NO_ERROR 以外の値を返す。

解説
    パイプや通信デバイスなど、シーク機構を持たないデバイスのハンドルを指定して GetFileSize 関数を使うことはできない。

    ファイルの種類を調べるには、GetFileType 関数を使う。