
GetFileSize和GetFileSizeEx的功能是一致的,都是獲取文件大小,函數(shù)原型分別如下:DWORD GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh);BOOL GetFileSizeEx(HANDLE hFile,PLARGE_INTEGER lpFileSize);參數(shù):GetFileSize的參數(shù)如下:hFile:輸入?yún)?shù),讀取數(shù)據(jù)的文件對象,有CreateFile創(chuàng)建,調(diào)用CreateFile打開文件時需要指明GENERIC_READ讀取操作模式或者GENERIC_WRITE寫入操作模式。lpFileSizeHigh:輸出參數(shù),表示得到的文件大小的高32位。該參數(shù)可以為NULL,為NULL是表示文件大小可以用DWORD表示。GetFileSizeEx的參數(shù)如下:hFile::輸入?yún)?shù),讀取數(shù)據(jù)的文件對象,有CreateFile創(chuàng)建,調(diào)用CreateFile打開文件時需要指明GENERIC_READ讀取操作模式或者GENERIC_WRITE寫入操作模式。lpFileSize: 輸出參數(shù),指向儲存文件大小的一個LARGE_INTEGER聯(lián)合體。返回值:GetFileSize成功時,返回值為一個表示文件大小DWORD值。GerFileSize失敗時,如果lpFileSizeHigh為NULL,返 回INVALID_FILE_SIZE并可以調(diào)用GetLastError函數(shù)獲取更詳細的錯誤信息;如果lpFileSizeHIgh為非NULL,那么同樣返回INVALID_FILE_SIZE并且出示讀取lpFileSizeHigh指向的值放在高32位,并將和返回的低32位DWORD連起來成為一個64為的值表示文件大小。lpFileSizeHigh為合法值則GetLastError返回NO_ERROR,表示API仍然成功;否則,GetLastError返回一個不等于NO_ERROR的值。使用說明:實際上這兩個函數(shù)區(qū)別就在于,對文件大小超出DWORD的情況采取不同處理方式。由于歷史原因,GetFileSize用兩個32位值分別存儲64為文件大小的高位和低位;而GetFileSizeEx直接將文件大小存儲在64位的聯(lián)合體中。
愛華網(wǎng)


