GetFileSize

【勇芳软件工作室】汉化HomePreviousNext

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 ){

//处理那个失败。

.

.

.

} //错误处理程序结束

也可以看看

GetCompressedFileSize, GetFileType