CFile.Open()的使用说明

转载 2013年12月04日 15:34:18
 
 

在程序中碰到这个一段代码:

讲的是CFILE类的文件操作,故参考MSDN系统学习一下(翻译了一下英文):

CFile file;
CFileException fe;

//打开文件
if(!file.Open(lpszPathName,CFile::modeRead|CFile::shareDenyWrite,&fe))
{
   ReportSaveLoadException(lpszPathName,&fe,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);
  
   return FALSE;
}

CFIIE类是MFC的文件类的基类,它直接提供无缓冲的二进制 磁盘I/O设备,并且通过它的派生类可以提供对text文件和内存文件的存取。CFILE与CArchive类一起提供对MFC序列化的支持。

CFILE类和它的派生类之间的等级关系,允许你的程序通过多态的CFILE界面对所有文件类进行操作。比如内存文件,或者磁盘文件以及类似的。

CFILE和它的派生类用于执行一般的磁盘I/O操作。而OFSTREAM或者其它的微软 iostream类则是用于把格式化text输出到磁盘文件上去。

通常,CFILE类的构造过程中会自动打开磁盘文件,在析构函数中则会自动关闭文件。你可以使用静态成员函数来询问文件的状态而不用打开文件。

使用CFILE类必须包含 #include <afx.h>

cfile:: open

virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );

返回值:成功为非0,否则为0,仅当返回值为0时pError参数才有意义

参数:

lpszFileName   需要打开文件的路径字符串,这个路径可以是相对路径也可以是绝对路径,或者是网络名字(UNC)

nOpenFlags   一个UINT定义文件的存取共享模式。它指定文件打开时可以采取的操作。你可以使用”|"号来组合多个选项。文件的一个存取权限和一个共享选项是必须要指定的。而modeCreate 和modeNoInherit是可选的。

具体如下:

  • 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::shareExclusivewhen used in CFile::Open.
  • CFile::typeText   设置成对回车换行对有特殊处理的文本模式(仅用在派生类中)
  • CFile::typeBinary    设置二进制模式(仅用在派生类中)

     

    pError-------一个指向一个已经存在的file-exception类的指针,它会接收文件失败操作的具体状态。

     

相关文章推荐

CFile的使用说明

在程序中碰到这个一段代码: 讲的是CFILE类的文件操作,故参考MSDN系统学习一下(翻译了一下英文): CFile file; CFileException fe; //打开文件 if(!...

window.open()的所有参数列表及使用说明

前言:经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项、版权信息 、警告、欢迎光顾之类的话或者作者想要特别提示的信息。其...

今天主要调了CFile中Open,Read,Write等函数

今天还是跟以前一样主要调了一下socket,这此不一样的是除了有用户名和密码的认证之外,还有建了一个文件,并且把文件中的内容传递到另外的一个地方(比如从c盘传递到d盘)。主要运用了CFile open...

关于CFile使用的一些问题

  • 2012年10月24日 21:24
  • 620KB
  • 下载

非常高效的文件处理 API 和 CFile 的使用详解

地址:非常高效的文件处理 API 和 CFile 的使用详解 记得有一款非常牛逼的局域网聊天软件叫 FreeEIM,里面处理文件是用 VC++ 的 API 函数,个人感觉效率非常高,我们知道,在VC...
  • mynote
  • mynote
  • 2014年05月27日 13:30
  • 956

使用CFile类写日志文件的一个程序

  • 2014年04月02日 09:52
  • 1.79MB
  • 下载

CFile的使用,VC

  • 2008年11月28日 18:05
  • 74KB
  • 下载

CFile和CStdioFile的文件读写使用方法

CFile//创建/打开文件CFile file;file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::mod...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CFile.Open()的使用说明
举报原因:
原因补充:

(最多只允许输入30个字)