double CPrjGetFileSizeDlg::GetFileSize(CString strFileFullPathName,char & cUnit) { CFile cfile; DWORD dwSize; double dblSize; cUnit = 'B'; if(cfile.Open(strFileFullPathName,CFile::modeRead|CFile::shareDenyRead)) { dwSize = cfile.GetLength(); cfile.Close(); if(0 == dwSize) { dblSize = 0; } else if(dwSize/1024.0/1024.0/1024.0 >= 1) { dblSize = dwSize/1024.0/1024.0/1024.0; cUnit = 'G'; } else if(dwSize/1024.0/1024.0 >= 1) { dblSize = dwSize/1024.0/1024.0; cUnit = 'M'; } else if(dwSize/1024.0 >= 1) { dblSize = dwSize/1024.0; cUnit = 'K'; } else { dblSize = dwSize; } return dblSize; } return 0; } void CPrjGetFileSizeDlg::OnLButtonDblClk(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CFileDialog filedialog(TRUE,NULL,NULL,NULL,"All Files|*.*|",this); CString str; double dblFileSize; char cUnit; if(IDOK ==filedialog.DoModal()) { dblFileSize = GetFileSize(filedialog.GetPathName(),cUnit); str.Format("%.2f %c",dblFileSize,cUnit); MessageBox(str); } CDialog::OnLButtonDblClk(nFlags, point); }