MFC 创建文本文件的问题

用的CFile::open创建文本,但是怎么判断是否创建成功呢?
测试发现如果创建已存在的同名文本的话,函数是会将文本打开的(返回值依然是true),这样我就不能判断是否创建成功了。。此处我只想创建文本,创建成功返回true,创建失败就返回false,而不去考虑打开它

3个回答

如果创建已存在的同名文本的话,函数是会将文本打开的(返回值依然是true)
此时本来就说明成功,难道你想返回false?
那你先用PathFileExists判断文件是否存在

virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );
如果只能通过设置nOpenFlags来做的话
CFile::modeCreate 让构造器创建一个新文件,如果那个文件已经存在,把那个文件的长度重设为0
CFile::modeNoTruncate 可以同modeCreate. 一起用,如果要创建的文件已经存在,并不把它长度设置为0,因而这个文件获取或者作为一个新建文件或者作为一个已存在文件打开。这个功能往往很好用,比如说,当你需要打开一个设置文件,但是你并不清楚这个文件是否已经存在。

那就先检查是否存在吧

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐