读书人

VS2010 MFC 取舍文件并显示 路径 和 大

发布时间: 2013-01-06 15:44:47 作者: rapoo

VS2010 MFC 选择文件并显示 路径 和 大小
初学MFC,写了一个小应用,选择文件显示其文件路径和文件大小。在win2003能成功运行,并显示结果。
但是在win 7 的环境下就显示无法打开文件,还有显示文件大小为0的情况。编译环境是VS2010

VS2010 MFC 取舍文件并显示 路径 和 大小

关键代码



/*
m_file 是CFile类型的,
m_filePath和m_fileName都是CString类型的

*/

void Cno1Dlg::OnBnClickedButton1()
{
CFileDialog dlg(TRUE);
if(dlg.DoModal() == IDCANCEL)
return;

if(m_file.m_hFile != CFile::hFileNull)
OnClose();

m_fileName = dlg.GetFileName();

if(!m_file.Open(m_fileName, CFile::modeCreate || CFile::modeReadWrite))
{
AfxMessageBox(_T("无法打开文件"));
m_fileName.Empty();
return;
}

m_filePath = dlg.GetPathName();

SetDlgItemTextW(IDC_EDIT1,m_filePath); //在IDC_EDIT1里显示文件路径

SetDlgItemInt(IDC_EDIT2,m_file.GetLength()/1024); //在IDC_EDIT2显示文件大小,单位是K,

}


[解决办法]
引用:
引用:

m_fileName = dlg.GetFileName();
---》
m_fileName = dlg.GetPathName();
------------------------------------
CFileDialog::GetPathName 返回的是文件的绝对路径
CFileDialog::GetFileName 返回的是文件的文件名,
……

m_fileName = dlg.GetFileName();
---》改成下面试试
m_fileName = dlg.GetPathName();

读书人网 >C++

热点推荐