CFile::Open是在MFC里面,打开一个文件的方法。

Open函数的原型如下:

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

如果你想读一个文件,就用CFile::modeRead作为第二个参数,同时CFile::modeCreate代表创建一个文件。

参数二:nOpenFlags可组合为以下值:

CFile::modeCreate 创建一个新的文件,如果文件存在将文件截取成长度为0。 ·

CFile::modeNoTruncate 此标志总是与modeCreate 配合使用,如果文件存在,不将文件截取成长度为0;如果文件不存在即创建新文件。这个功能往往很好用,比如说,当你需要打开一个设置文件,但是你并不清楚这个文件是否已经存在。

CFile::modeRead 只读方式打开。

CFile::modeReadWrite 读写方式打开。

CFile::modeWrite 只写方式打开。

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

CFile::shareDenyNone 打开这个文件同时允许其它进程读写这个文件。如果文件被其它进程以兼容的模式打开,这时create操作会失败。

CFile::shareDenyRead 打开文件拒绝其它任何进程读这个文件。如果文件被其它进程用compatibility模式或者是读方式打开,create操作失败。

CFile::shareDenyWrite 打开文件拒绝其它任何进程写这个文件。如果文件被其它进程用compatibility模式或者是写方式打开,create操作失败。

CFile::shareExclusive 以独占方式打开这个文件,不允许其它进程读写这个文件。如果文件已经在其它程序或当前程序以其他方式打开来进行读写,将返回失败。 

CFile::shareCompat 这个标志在32位的MFC中无效。

CFile::typeText 设置成对回车换行对有特殊处理的文本模式(仅用在派生类中)。

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

示例:

//VC++:
TCHAR* pszFileName = _T("c:\\test\\myfile.dat");
CFile myFile;
CFileException fileException;
if ( !myFile.Open( pszFileName, CFile::modeCreate | CFile::modeReadWrite, &fileException ) )
{
TRACE( _T("Can't open file %s, error = %u\n"),
pszFileName, fileException.m_cause );
}

在MFC里面,打开一个文件最常用的方法分为以下两步:

1.创建一个用于打开文件的对象,通常都是声明一个CFile或者一个CFile派生类的对象

2.调用该CFile对象的Open方法,并提供一个文件路径和打开方式作为Open方法的参数

最新文章

  1. Java概述
  2. 《CLR.via.C#第三版》第二部分第13章节 接口 读书笔记(七)
  3. 谈事件冒泡(Bubble)和事件捕捉(capture)
  4. python urllib2 发起http请求post
  5. Java学习笔记(二一)——Java 泛型
  6. WAR包
  7. bash 读入文件
  8. 【甘道夫】HBase基本数据操作的详细说明【完整版,精绝】
  9. Disabling Clang Compiler warnings
  10. 使用spool命令从Oracle导出数据
  11. WebPart设置杂项
  12. ssh登陆笔记📒
  13. javascript 关闭页面提示
  14. hbuilder 手机app开发系列(一)
  15. 将Maven的Web项目部署到windows的Tomcat里
  16. android studio运行的时候出现Unable to obtain debug bridge错误的解决办法
  17. Java常用API——String字符串运算
  18. 串口发送端verilog代码分析
  19. django自定义标签,int转化为str类型
  20. 文字过多以省略号代替,放在文字上会显示title信息提示

热门文章

  1. solr研磨之游标分页
  2. Python中的函数与变量
  3. 详解URL的组成
  4. python编码详解--转自(Alex的博客)
  5. Netstat状态分类
  6. eclipse更新time out的问题
  7. 解决distinct与order by 的冲突
  8. 一个简单的小小记账本程序(java)
  9. 万网主机使用wordpress发送邮件的方法
  10. 报错:严重: Servlet.service() for servlet [springmvc] in context with path [ ] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause