2 qq 28254507 qq_28254507 于 2016.02.26 13:32 提问

MFC 创建文本文件的问题

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

3个回答

caozhy
caozhy   Ds   Rxr 2016.02.26 18:05
已采纳

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

zuishikonghuan
zuishikonghuan   2016.02.26 21:31

那就先检查是否存在吧

qq423399099
qq423399099   Ds   Rxr 2016.02.26 17:48

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!