1 void CGetFileSizeDlg::OnBnClickedButton1() 2 { 3 CString strFile; 4 GetDlgItemText(IDC_EDIT1, strFile); 5 DWORD dwHigh = 0;//(文件大小超过4GB)存放33-64位高位 6 DWORD dwSize = 0;//存放1-32位地位 7 HANDLE hFile = CreateFile(strFile, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 8 if (hFile == INVALID_HANDLE_VALUE) { 9 DWORD errCode = GetLastError(); 10 CString szErr; 11 szErr.Format(_T("CreateFile出错啦!错误代码是%d"), errCode); 12 MessageBox(szErr); 13 CloseHandle(hFile); 14 return; 15 } 16 LARGE_INTEGER totalSize;//这里使用LARGE_INTEGER结构体 17 if (!GetFileSizeEx(hFile, &totalSize)) { 18 DWORD errCode = GetLastError(); 19 CString szErr; 20 szErr.Format(_T("GetFileSizeEx出错啦!错误代码是%d"), errCode); 21 MessageBox(szErr); 22 CloseHandle(hFile); 23 return; 24 } 25 LONGLONG lTotal = totalSize.QuadPart; 26 DOUBLE dbTotal = (DOUBLE)lTotal; 27 DOUBLE kbSize = dbTotal / 1024; 28 DOUBLE mbSize = dbTotal / (1024*1024); 29 DOUBLE gbSize = dbTotal / (1024*1024*1024); 30 CString cbSize; 31 cbSize.Format(_T("文件大小是%lld字节(%0.2fKB,%0.2fMB,%0.2fGB)"), lTotal,kbSize,mbSize,gbSize); 32 MessageBox(cbSize); 33 CloseHandle(hFile); 34 return; 35 }
GetFileSizeEx的用法(比GetFileSize简单)
原文:https://www.cnblogs.com/mktest123/p/12133705.html