"不能打开未命名文件"错误是什么意思?

yym314 yym314 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我一个MFC的dialog程序中,处理一个button的click事件时偶尔会跳出"不能打开未命名文件"这样的错误消息.在大多数机器上没有这个问题,只是在几个机器上会出现这个问题.why?
程序代码如下:

//其中SYSLOG是一个系统日志文件,m_lvFile是一个有3列的list view

void CFTClientDlg::OnBtnAdd()
{
CFileDialog dlg(TRUE,"","",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,
"所有文件(*.*)|*.*|");

if(IDOK==dlg.DoModal())
{
CFile file;
CFileStatus filestatus;
CString strFilePath, strFileSize, strFileTime;
unsigned long lFileSize;
POSITION pos = dlg.GetStartPosition();

while (pos)
{
strFilePath = dlg.GetNextPathName(pos);

if( file.Open( strFilePath, CFile::modeRead|CFile::shareDenyNone ) <0 ||
file.GetStatus( filestatus) == false )
{
char strError[256];
_snprintf( strError, 255, "无法打开文件%s,请检查文件是否存在",strFilePath.GetBuffer(-1) );
SYSLOG.WriteLog( LOG_ERROR, strError );
MessageBox( strError, NULL, MB_OK|MB_ICONWARNING );
if( file.operator HFILE() != CFile::hFileNull )
file.Close();
continue;
}
lFileSize = file.GetLength();
strFileSize.Format("%d字节", lFileSize);

strFileTime = filestatus.m_mtime.Format("%Y%m%d %H:%M:%S");

int idx = m_lvFile.InsertItem( m_lvFile.GetItemCount(), strFilePath );
m_lvFile.SetItemText( idx, 1, strFileSize );
m_lvFile.SetItemText( idx, 2, strFileTime );

if( file.operator HFILE() != CFile::hFileNull )
file.Close();
}
}
}
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
yym314
界面 15,976 成员 115,866 内容