GetFileSize函数检索指定文件的大小(以字节为单位)。
DWORD GetFileSize(
HANDLE 【HFILE】, | //处理文件以获取大小 |
LPDWORD 【lpFileSizeHigh】 | //文件大小高位字的地址 |
); |
参数
【HFILE】
指定要返回大小的文件的打开句柄。必须使用GENERIC_READ或GENERIC_WRITE访问该文件创建句柄。
【lpFileSizeHigh】
指向返回文件大小高位字的变量。如果应用程序不需要高位字,则此参数可以为NULL。
返回值
如果函数成功,则返回值是文件大小的低位双字,如果【lpFileSizeHigh】不为NULL,则该函数将文件大小的高位双字写入该参数指向的变量中。
如果函数失败,并且【lpFileSizeHigh】为NULL,则返回值为0xFFFFFFFF。要获取扩展错误信息,请调用GetLastError.
如果函数失败,并且【lpFileSizeHigh】不为NULL,返回值为0xFFFFFFFF,GetLastError将返回除NO_ERROR之外的值。
备注
您不能将GetFileSize功能与非查询设备(例如管道或通讯设备)的句柄一起使用。要确定【HFILE】的文件类型,请使用GetFileType功能。
GetFileSize函数获取文件的未压缩大小。使用GetCompressedFileSize函数获取文件的压缩大小。
请注意,如果返回值为0xFFFFFFFF且【lpFileSizeHigh】为非空值,则应用程序必须调用GetLastError以确定函数是成功还是失败。以下示例代码说明了这一点:
//
// Case One:调用该函数
// lpFileSizeHigh == NULL
//尝试获取hFile的大小
dwSize = GetFileSize (hFile, NULL) ;
//如果我们失败了...
if (dwSize == 0xFFFFFFFF) {
//获取错误代码。
dwError = GetLastError() ;
//处理那个失败。
.
.
.
} //错误处理程序结束
//
//案例二:调用函数
// lpFileSizeHigh!= NULL
//尝试获取hFile的巨大尺寸。
dwSizeLow = GetFileSize (hFile, & dwSizeHigh) ;
//如果我们失败了...
if (dwSizeLow == 0xFFFFFFFF
&&
(dwError = GetLastError()) != NO_ERROR ){
//处理那个失败。
.
.
.
} //错误处理程序结束
也可以看看