各位高手,我的一段程序如下:
void CXXPage::GenXXHTML(LPCTSTR lpTimeString,CString strPath)
{
CString strFileName("报告");
strFileName=strFileName+lpTimeString+".htm";//lpTimeString为当前时间
TRY
{
/*产生保存文件的对话框*/
CFileDialog dlg(FALSE,"htm",strFileName,OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY,"网页文件(*.htm)(*.html)|*.htm;*.html||",this);
dlg.m_ofn.lpstrTitle=_T("保存报告");
if(dlg.DoModal()==IDOK)
{
CString userFileName=dlg.GetPathName(); //userFileName为用户保存的包含路径的新文件
CString templateFileName=strPath+"\\报告.htm"; //templateFileName为包含路径的模板文件
HANDLE handle;
handle=CreateFile(userFileName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(INVALID_HANDLE_VALUE!=handle)
{
BOOL bCopy=CopyFile(templateFileName,userFileName,FALSE);//从模板文件“报告.htm”中复制文件内容
}
CloseHandle(handle);
}
}
CATCH( CFileException, e )
{
#ifdef _DEBUG
afxDump << "File could not be opened "<< e->m_cause << "\n";
#endif
}
END_CATCH
}
上面程序是将已存在的一个模板文件“报告.htm”中的内容复制到用户新建的htm文件中。但程序执行后,文件内容并没有被复制,我设断点跟踪后bCopy也确实为0,但这两个文件都已存在,且路径都对,不知道为什么没有复制成功,请高手帮我分析一下,多谢了!
void CXXPage::GenXXHTML(LPCTSTR lpTimeString,CString strPath)
{
CString strFileName("报告");
strFileName=strFileName+lpTimeString+".htm";//lpTimeString为当前时间
TRY
{
/*产生保存文件的对话框*/
CFileDialog dlg(FALSE,"htm",strFileName,OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY,"网页文件(*.htm)(*.html)|*.htm;*.html||",this);
dlg.m_ofn.lpstrTitle=_T("保存报告");
if(dlg.DoModal()==IDOK)
{
CString userFileName=dlg.GetPathName(); //userFileName为用户保存的包含路径的新文件
CString templateFileName=strPath+"\\报告.htm"; //templateFileName为包含路径的模板文件
HANDLE handle;
handle=CreateFile(userFileName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(INVALID_HANDLE_VALUE!=handle)
{
BOOL bCopy=CopyFile(templateFileName,userFileName,FALSE);//从模板文件“报告.htm”中复制文件内容
}
CloseHandle(handle);
}
}
CATCH( CFileException, e )
{
#ifdef _DEBUG
afxDump << "File could not be opened "<< e->m_cause << "\n";
#endif
}
END_CATCH
}
上面程序是将已存在的一个模板文件“报告.htm”中的内容复制到用户新建的htm文件中。但程序执行后,文件内容并没有被复制,我设断点跟踪后bCopy也确实为0,但这两个文件都已存在,且路径都对,不知道为什么没有复制成功,请高手帮我分析一下,多谢了!