这个代码是在VS2015上, 文件大小大于2GB, fileStatus.m_size获取到的文件大小结果不对, GetStatus还返回执行成功
查看MFC的源代码发现
源码位置: VC\atlmfc\src\mfc\filest.cpp
// get just the low DWORD of the file size
ASSERT(findFileData.nFileSizeHigh == 0);
rStatus.m_size = (LONG)findFileData.nFileSizeLow;
可以使用如下代码获取文件大小
BOOL GetFileSize(CString strFilePath, ULONGLONG& nFileSize)
{
HANDLE hFile = CreateFile(strFilePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
if(hFile == INVALID_HANDLE_VALUE) {
return FALSE;
}
LARGE_INTEGER lFileSize;
if(!GetFileSizeEx(hFile, &lFileSize)){
CloseHandle(hFile);
return FALSE;
}
nFileSize = lFileSize.QuadPart;
CloseHandle(hFile);
return TRUE;
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有