如何判断一个文本文件是否存在?如果存在就打开添加一条新记录;
如果不存在就创建文本文件,然后添加新行。
我用这种方法,老是提示创建文件失败:
void CMainFrame::WriteLog(const char * msg)
{
if((msg=="")||(msg==NULL))
return;
char* str=(char*)malloc(strlen(msg)+2);
strcpy(str,msg);
strcat(str,"\n");
//if (LogFile==NULL)
LogFile="c:\\schVoice.txt";
CStdioFile file;
if(file.Open(LogFile,CStdioFile::modeNoTruncate|CStdioFile::typeText)==0)
{
char str[80];
strcpy(str,"创建文件");
strcat(str,LogFile);
strcat(str,"失败!");
AfxMessageBox(str);
free(str);
return;
}
file.SeekToEnd();
file.WriteString(str);
file.SetLength(file.GetPosition());
file.Close();
free(str);
}
如果不存在就创建文本文件,然后添加新行。
我用这种方法,老是提示创建文件失败:
void CMainFrame::WriteLog(const char * msg)
{
if((msg=="")||(msg==NULL))
return;
char* str=(char*)malloc(strlen(msg)+2);
strcpy(str,msg);
strcat(str,"\n");
//if (LogFile==NULL)
LogFile="c:\\schVoice.txt";
CStdioFile file;
if(file.Open(LogFile,CStdioFile::modeNoTruncate|CStdioFile::typeText)==0)
{
char str[80];
strcpy(str,"创建文件");
strcat(str,LogFile);
strcat(str,"失败!");
AfxMessageBox(str);
free(str);
return;
}
file.SeekToEnd();
file.WriteString(str);
file.SetLength(file.GetPosition());
file.Close();
free(str);
}
解决方案 »
- VC编写Windows的系统服务,需要具备哪些必要的条件?
- Xtreme Toolkit Pro问题
- combo选择列表值后触发什么事件?在线等....
- 关于VC环境的问题的(附件)
- 关于数据存取的问题
- 突然掉电,导致clw文件损坏,如何补救?
- 关于MDI的子窗口标题问题!谁解决给谁1000分
- ADO的问题:请问如何将代码中已建立的_ConnectionPtr赋给ADO控件,因为ADO控件每次都需要连接,效率太低了
- 给分
- 关于CRichEditView的问题, 急!! 在线等待.
- 我想在picture box控件中实现图画处理,在属性窗口中选定autoredraw,在scalemode属性中选定pix属性,这时我的pocture box控件只能显示2000
- 菜鸟求救(40分)
我改成这样了:
file.Open(LogFile,CFile::modeNoTruncate|CFile::typeText|CFile::modeWrite);
但还是会弹出创建文件失败的对话框。
假如文件"c:\\schVoice.txt"存在的话,
一切正常。
另外一种就是打开文件标志用 CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText|CFile::modeWrite
它就表示,如果文件存在就打开(但不把文件清空),不存在就创建
CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText|CFile::modeWrite
它就表示,如果文件存在就打开(但不把文件清空),不存在就创建
------------------------------
我用这个时,open()会返回0(文件不存在时),结果弹出创建文件失败的对话框,
不知怎么会事????????????????????????????
测试成功了!!
谢谢subtop(风歌) 大哥!