这个代码是在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;
}