ProgJ
2016-02-26 05:32
采纳率: 88.1%
浏览 1.4k

MFC 创建文本文件的问题

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • blownewbee 2016-02-26 10:05
    已采纳

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

    点赞 打赏 评论
  • 小灸舞 2016-02-26 09:48

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

    点赞 打赏 评论
  • zuishikonghuan 2016-02-26 13:31

    那就先检查是否存在吧

    点赞 打赏 评论

相关推荐 更多相似问题