CFile 打开方式及出错出理

来源:互联网 发布:余国荔 知乎 编辑:程序博客网 时间:2024/05/18 22:11
  • CFile::modeCreate    让构造器创建一个新文件,如果那个文件已经存在,把那个文件的长度重设为
  • CFile::modeNoTruncate    可以同modeCreate. 一起用,如果要创建的文件已经存在,并不把它长度设置为0,因而这个文件获取或者作为一个新建文件或者作为一个已存在文件打开。这个功能往往很好用,比如说,当你需要打开一个设置文件,但是你并不清楚这个文件是否已经存在。
  •  

  • CFile::modeRead 打开文件仅仅供读
  •  

     

  • CFile::modeReadWrite    打开文件供读写
  •  

     

  • CFile::modeWrite   打开文件只供写
  •  

     

  • CFile::modeNoInherit    阻止这个文件被子进程继承
  •  

  • CFile::shareDenyNone 打开这个文件同时允许其它进程读写这个文件。如果文件被其它进程以incompatibility模式打开,这是create操作会失败。
  • CFile::shareDenyRead   打开文件拒绝其它任何进程读这个文件。如果文件被其它进程用compatibility模式或者是读方式打开,create操作失败。
  •  

  • CFile::shareDenyWrite   打开文件拒绝其它任何进程写这个文件。如果文件被其它进程用compatibility模式或者是写方式打开,create操作失败。
  • CFile::shareExclusive   以独占方式打开这个文件,不允许其它进程读写这个文件。 Construction fails if the file has been opened in any other mode for read or write access, even by the current process.
  • CFile::shareCompat    这个标志在32位的MFC中无效。 This flag maps to CFile::shareExclusive when used in CFile::Open.
  • CFile::typeText   设置成对回车换行对有特殊处理的文本模式(仅用在派生类中)
  •  

  • CFile::typeBinary    设置二进制模式(仅用在派生类中)
  •  

    1. 不要以为 modeRead 打开文件就一定会成功, 如果另一个程序打开了一个文件, 用 modeRead方式再打开此文件就会失败!

    2. 对于一个另的程序已经打开的文件, 想要再次打开, 可以试用 shareDenyNone 方式开打, 只要对方不是非相容方式打开的.