Retrieves the size of the specified file, in bytes.
It is recommended that you use GetFileSizeEx.
Syntax
DWORD WINAPI GetFileSize(
__in HANDLE hFile,
__out_opt LPDWORD lpFileSizeHigh
);
Parameters
- hFile [in]
-
A handle to the file.
- lpFileSizeHigh [out, optional]
-
A pointer to the variable where the high-order doubleword of the file size is returned. This parameter can
be NULL if the application does not require the high-order doubleword.
Return Value
If the function succeeds, the return value is the low-order doubleword of the file size, and, if
lpFileSizeHigh is non-NULL, the function puts the
high-order doubleword of the file size into the variable pointed to by that parameter.
If the function fails and lpFileSizeHigh is NULL, the
return value is INVALID_FILE_SIZE. To get extended error information, call
GetLastError. When
lpFileSizeHigh is NULL, the results returned for large
files are ambiguous, and you will not be able to determine the actual size of the file. It is recommended that
you use GetFileSizeEx instead.
If the function fails and lpFileSizeHigh is non-NULL, the
return value is INVALID_FILE_SIZE and
GetLastError will return a value other than
NO_ERROR.
Remarks
You cannot use the GetFileSize function with a handle of
a nonseeking device such as a pipe or a communications device. To determine the file type for
hFile, use the GetFileType
function.
The GetFileSize function retrieves the uncompressed size
of a file. Use the GetCompressedFileSize
function to obtain the compressed size of a file.
Note that if the return value is INVALID_FILE_SIZE (0xffffffff), an application must
call GetLastError to determine whether the function has
succeeded or failed. The reason the function may appear to fail when it has not is that
lpFileSizeHigh could be non-NULL or the file size could be
0xffffffff. In this case, GetLastError will return
NO_ERROR (0) upon success. Because of this behavior, it is recommended that you use
GetFileSizeEx instead.
Transacted Operations: If there is a transaction bound to the file handle, then the function returns information for the isolated
file view.
Example Code
For an example, see
Creating a View Within a File.
Requirements
| Client | Requires Windows Vista, Windows XP, or Windows 2000 Professional. |
| Server | Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server. |
| Header | Declared in WinBase.h; include Windows.h. |
| Library | Use Kernel32.lib. |
| DLL | Requires Kernel32.dll. |
See Also
File Management Functions
GetCompressedFileSize
GetFileSizeEx
GetFileType
Send comments about this topic to Microsoft
Build date: 6/19/2008