菜鸟问题:如何判断一个文本文件是否存在?如果存在就打开添加一条新行?

baiyongchun 2004-05-04 06:32:58
如何判断一个文本文件是否存在?如果存在就打开添加一条新记录;
如果不存在就创建文本文件,然后添加新行。
我用这种方法,老是提示创建文件失败:
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);
}
...全文
131 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
subtop 2004-05-04
  • 打赏
  • 举报
回复
:)
baiyongchun 2004-05-04
  • 打赏
  • 举报
回复
CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText|CFile::modeWrite
测试成功了!!
谢谢subtop(风歌) 大哥!
baiyongchun 2004-05-04
  • 打赏
  • 举报
回复
to:subtop(风歌) 大哥:
CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText|CFile::modeWrite
它就表示,如果文件存在就打开(但不把文件清空),不存在就创建
------------------------------
我用这个时,open()会返回0(文件不存在时),结果弹出创建文件失败的对话框,
不知怎么会事????????????????????????????
subtop 2004-05-04
  • 打赏
  • 举报
回复
其实,有两种方法可以解决,一是文件存在就打开,否则就创建;不过这样好象有点麻烦。
另外一种就是打开文件标志用 CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText|CFile::modeWrite
它就表示,如果文件存在就打开(但不把文件清空),不存在就创建
baiyongchun 2004-05-04
  • 打赏
  • 举报
回复
to:subtop(风歌) 大哥
我改成这样了:
file.Open(LogFile,CFile::modeNoTruncate|CFile::typeText|CFile::modeWrite);
但还是会弹出创建文件失败的对话框。
假如文件"c:\\schVoice.txt"存在的话,
一切正常。
subtop 2004-05-04
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2987/2987776.xml?temp=.4904444
subtop 2004-05-04
  • 打赏
  • 举报
回复
改成file.Open(LogFile,CFile::modeNoTruncate|CFile::typeText|CFile::modeWrite);

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧