GetFileSize

指定されたファイルのサイズを取得します。

DWORD GetFileSize(
    HANDLE hFile,          // ファイルハンドル
    PDWORD pFileSizeHigh   // 上位32ビットを格納する変数
);

KERNEL32.DLL

引数

hFile

サイズを取得するファイルのハンドルを指定します。このハンドルは、 GENERIC_READ アクセスまたは GENERIC_WRITE アクセスの少なくとも一方を指定して作成されたファイルオブジェクトのものでなければなりません。

pFileSizeHigh

ファイルサイズの上位32ビットを格納する変数のアドレスを指定します。このパラメータに 0 (NULL) を指定した場合は、ファイルサイズの上位32ビットは取得されません。

戻り値

成功すると、ファイルサイズの下位32ビットが返ります。また、 pFileSizeHigh パラメータに有効な変数のアドレスが指定されている場合には、その変数にファイルサイズの上位32ビットが返ります。

pFileSizeHigh パラメータに 0 (NULL) を指定したときに関数が失敗すると、 0xFFFFFFFF (INVALID_FILE_SIZE) が返ります。拡張エラー情報を取得するには、 GetLastError 関数を使います。

pFileSizeHigh パラメータに 0 (NULL) 以外の値を指定したときに関数が失敗すると、 0xFFFFFFFF (INVALID_FILE_SIZE) が返り、 GetLastError 関数が 0 (NO_ERROR) 以外の値を返します。

解説

この関数に、パイプやコミュニケーションデバイスなどの非シークデバイスのハンドルを指定することはできません。ファイルハンドルのファイルタイプを取得するには、 GetFileType 関数を使います。

対応情報

Windows 95 以降 / Windows NT 3.1 以降