通过winapi获取文件大小
qq:9611153 微信lgs9611153
时间:2010-7-12
背景原因:
获取文件大小有多种方式,这里介绍一种通过GetFileAttributesEx函数获取文件大小的方法。
所需资源:
在vc中进行测试。
解决方案:
long getFileSize(const wchar_t * filename ) { GET_FILEEX_INFO_LEVELS fInfoLevelId = GetFileExInfoStandard; WIN32_FILE_ATTRIBUTE_DATA FileInformation; // //通过winapi获取文件属性 BOOL bGet = GetFileAttributesEx(filename,fInfoLevelId,&FileInformation); if(bGet) { _fsize_t nFileSizeLow = FileInformation.nFileSizeLow; _fsize_t nFileSizeHigh = FileInformation.nFileSizeHigh; ULARGE_INTEGER szFile; szFile.HighPart = nFileSizeHigh;// 超大文件才需要 szFile.LowPart = nFileSizeLow; return szFile.LowPart; } return 0;
}
int __cdecl _tmain (int argc, TCHAR **argv) { wchar_t* lpFileName = L"E:\\downloads\\medias\\welcome.png"; long filesize = getFileSize(lpFileName);
wcout <<lpFileName <<L" file size = " << filesize << L" bytes" << endl; system(("pause")); return 0; }
|