问题描述
- MFC 创建文本文件的问题
- 用的CFile::open创建文本,但是怎么判断是否创建成功呢?
测试发现如果创建已存在的同名文本的话,函数是会将文本打开的(返回值依然是true),这样我就不能判断是否创建成功了。。此处我只想创建文本,创建成功返回true,创建失败就返回false,而不去考虑打开它
解决方案
如果创建已存在的同名文本的话,函数是会将文本打开的(返回值依然是true)
此时本来就说明成功,难道你想返回false?
那你先用PathFileExists判断文件是否存在
解决方案二:
那就先检查是否存在吧
解决方案三:
virtual BOOL Open( LPCTSTR lpszFileName UINT nOpenFlags CFileException* pError = NULL );
如果只能通过设置nOpenFlags来做的话
CFile::modeCreate 让构造器创建一个新文件,如果那个文件已经存在,把那个文件的长度重设为0
CFile::modeNoTruncate 可以同modeCreate. 一起用,如果要创建的文件已经存在,并不把它长度设置为0,因而这个文件获取或者作为一个新建文件或者作为一个已存在文件打开。这个功能往往很好用,比如说,当你需要打开一个设置文件,但是你并不清楚这个文件是否已经存在。
时间: 2024-12-10 23:58:34