我想实现点击按钮,将数据存入到文件(文件名由编辑框内输入的名字决定)中去,若文件存在,提示是否覆盖,我写的OnSelectButton() 代码如下,不知为什么,即使我保存的文件名已经存在,依然直接覆盖,请高手指点,谢谢
CFileDialog dlg(false,"TXT",NULL,NULL,"Text file(*.txt) ¦ *.TXT ¦ ¦",NULL);
if(dlg.DoModal()==IDOK)
{
if(GetLastError()==ERROR_FILE_EXISTS)
{
if(::MessageBox(NULL,"目标文件已经存在!覆盖吗?","Warnning!", MB_ICONEXCLAMATION ¦MB_YESNO)==IDNO)
{
return;
}
}
m_path=dlg.GetPathName(); //将文件路径保存在m_path中
}
CFileDialog dlg(false,"TXT",NULL,NULL,"Text file(*.txt) ¦ *.TXT ¦ ¦",NULL);
if(dlg.DoModal()==IDOK)
{
if(GetLastError()==ERROR_FILE_EXISTS)
{
if(::MessageBox(NULL,"目标文件已经存在!覆盖吗?","Warnning!", MB_ICONEXCLAMATION ¦MB_YESNO)==IDNO)
{
return;
}
}
m_path=dlg.GetPathName(); //将文件路径保存在m_path中
}
class CMyFileDialog : public CFileDialog
{
DECLARE_DYNAMIC(CMyFileDialog)public:
CMyFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL);
virtual ~CMyFileDialog();protected:
DECLARE_MESSAGE_MAP()
virtual BOOL OnFileNameOK();
};BOOL CMyFileDialog::OnFileNameOK()
{
FILE* f = NULL;
if ( ( f = fopen( GetFileName(), "r" ) ) != NULL )
{
fclose( f );
MessageBox( "t", "t", MB_OK );
} return CFileDialog::OnFileNameOK();
}