CFile是MFC文件类的基类,主要是在开发MFC应用程序时对文件操作比较方便。下面主要记录CFile类中常用的成员函数。

1、打开文件

(1)CFile(LPCTSTR lpszFileName,UINT nOpenFlags);//是CFile类的一个构造函数

功能:打开一个文件

参数:lpszFileName文件路径,此路径可为相对的也可为绝对的路径。

nOpenFlags 文件打开方式

其中打开方式nOpenFlags有以下取值:

CFile::modeCreate 构造新文件,若文件存在则设文件长度为0

CFile::modeNoTruncate 与modeCreate组合使用所创建的文件已存在则其长度不变为0。

CFile::modeRead 以读的方式打开文件

CFile::modeReadWrite 以读写的方式打开文件

CFile::modeWrite 以写的方式打开文件

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

CFile::modeShareDenyNone 不禁止其它进程读或写访问CFile::modeDenyRead 禁止其它进程读此文件

CFile::modeDenyWrite 禁止其它进程写此文件

CFile::ShareExcelusive 以独占方式打开文件,禁止其它进程对其读写

CFile::shareCompat 在open函数里与CFile::ShareExcelusive一样

CFile::typeText 对回车换行设置特殊进程(只用在派生类)

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

使用如下:

CFile file("D:\\1.txt",CFile::modeRead|CFile::mode::Write);

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

功能:打开文件

参数:lpszFileName文件路径,此路径可为相对的也可为绝对的路径。

nOpenFlags 打开方式

pError 指向一个存在的文件异常对象,获取失败操作的状态。

返回值:打开成功返回TRUE,否则返回FLASE

使用如下:

CFile file;

File.open("D:\\1.txt",CFile::modeRead|CFile::modeWrite);//这里使用的参数pError的缺省值NULL;

2、关闭文件

virtual void Close( );

使用如下:

file.close();

3、写入/读出

(1)virtual UINT Read (void* lpBuf,UINT nCount);

功能:从文件中读取nCount个字节到lpBuf中

参数:lpBuf用来读取数据的缓冲区

nCount 读取数据的最大字节数

返回值:实际读取的字节数

使用如下:

char lpBuf[128];

File.Read(lpBuf,100);//从文件中读取100个字节数到lpBuf中

(2)DWORD ReadHuge(void* lpBuffer,DWORD dwCount);

功能:读取超过64k字节数据到缓冲区中

参数:lpBufffer用来读取数据的缓冲区

dwCount 读取数据的最大字节数

返回值:实际读取的字节数

用法与read一样

(3)virtual UINT Write(const void* lpBuf,UINT nCount);

功能:将缓冲区中的数据写入到文件中

参数:lpBuf存放准备写入文件的数据缓冲区

nCount 写入文件的最大字节数

返回值:实际写入文件的字节数

使用如下:

char* lpBuf = "C++ Programming";

file.Write(lpBuf,sizeof(lpBuf));

(4)(DWORD WriteHuge(void* lpBuffer,DWORD dwCount);

功能:写入超过64k字节数据到文件中

参数:lpBufffer用来存放准备写入数据的缓冲区

dwCount 写入数据的最大字节数

返回值:实际写入的字节数

用法与Write一样

4、定位文件

(1)virtual LONG Seek(LONG lOff,UINT nFrom);

功能:定位当前文件指针

参数:lOff指针移动的字节数

nFrom 指针移动模式

移动模式有如下三种:

CFile::begin 从文件起始位置开始向后移动lOff个字节

CFile::current 从当前文件指针开始向后移动lOff个字节

CFile::end 从文件末尾开始向前移动lOff个字节(此时lOff应为负数)返回值:lOff合法,则Seek返回从文件开始起的新字节偏移量。否则值未定义并产生CFileException异常。

使用如下:

file.Seek(100,CFile::begin);//从文件起始位置向前移动100个字节

(2)void SeekToBegin();

功能:文件指针移到文件起始位置

使用如下:

file.SeekToBegin();

(3)void SeekToEnd();

功能:文件指针移到文件末尾

使用如下:

file.SeekToEnd();

(4)virtual DWORD GetLength( ) const;

功能:获取文件长度

返回值:文件的长度

使用如下:

DWORD Length;

Length = file.GetLength();

(5)virtual void SetLength(DWORD dwNewLen);

功能:设置文件长度

使用如下:

file.SetLength(1000);

5、文件路径

(1)virtual CString GetFilePath( )const;

功能:获取文件的完整路径

返回值:文件的完整路径

使用如下:

CString FilePath;

FilePath = file.GetFilePath();

(2)virtual void SetFilePath(LPCTSTR lpszNewName);

功能:设置文件的完整路径

使用如下:

file.SetFilePath("D:\\1.txt");

(3)virtual DWORD GetPosition ( )const;

功能:获取文件指针相对于起始位置的偏移量,经常与Seek一起用

返回值:文件指针相对于起始位置的偏移量

(4)static void PASCAL Rename(LPCTSTR lpszOldName,LPCTSTR lpszNewName);

功能:改名指定文件

参数:lpszOldName 原文件完全路径

lpszNewName 新文件完全路径

使用如下:

file.Rename("D:\\1.txt","D:\\2.txt");

(5)static void PASCAL Remove(LPCTSTR lpszFileName);

功能:删除文件

参数:lpszFileName需要删除的文件的相对路径或绝对路径

使用如下:

file.Remove("D:\\1.txt");

c语言CFile的使用方法,C/C++文件操作之CFile相关推荐

  1. C++ 文件操作(CFile类)

    一.Visual C++编程文件操作 有如下方法可进行操作: (1)使用标准C运行库函数,包括fopen.fclose.fseek等. (2)使用Win16下的文件和目录操作函数,如lopen.lcl ...

  2. 【MFC】学习笔记:文件操作类——CFile

    01.目录 目录 01.目录 02.CFile类概述 03.CFile类成员函数 04.两个案例 4.1 实例1 4.2 实例2 05.CFile类总结 02.CFile类概述 如果你学过C语言,应该 ...

  3. python对文件的读操作有哪些方法-Python之文件操作:文件的读写

    一.open函数:对文件读写之前,需要先打开文件,获取文件句柄 注意:open() file() 尽量使用open(),Python3以后不支持file()了 1.open(file_name[,ac ...

  4. python文件操作的方法_python中文件操作的基本方法

    在python中对一个文件进行操作,分为三大步:打开,操作,关闭 首先创建一个文件hello,里面内容为hello world 一.打开一个文件 #open('文件名或文件路径','操作模式',文件里 ...

  5. python修改文件的方法_python中文件操作实现全文或单行替换方法

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开.替换文本中的taste 为 tasting Yesterday when ...

  6. c语言饭卡管理系统链表文件,C语言《学生信息管理系统》链表+文件操作

    今天带来的是一个链表版本的<学生信息管理系统>,功能包括:添加.显示.查询.删除.保存.读取,等功能模块,链表是C语言的进阶内容,希望大家好好学习,这里的代码可能会有一些瑕疵,希望大家提供 ...

  7. C#语言实例源码系列-实现XML文件操作

    专栏分享 点击跳转=>Unity3D特效百例 点击跳转=>案例项目实战源码 点击跳转=>游戏脚本-辅助自动化 点击跳转=>Android控件全解手册

  8. 【C语言】职工管理系统详解(文件操作)

    前言 大部分初学计算机的同学完成的第一个比较完整的程序就是管理系统,不过细分之后可能还有图书管理系统,停车场管理系统.在小黄看来,一个人独立地完成这样一个系统对于自己代码能力的整体提升是非常大的,是把 ...

  9. c语言CFile的使用方法,mfc文件操作CFile类之创建文件的方法

    mfc文件操作类CFile CFile类的几种构造函数 CFile();//不带参数的构造函数. CFile(int hFile);//带文件句柄参数的构造函数. CFile( LPCTSTR lps ...

最新文章

  1. HMTL判断ie版本
  2. 边工作边刷题:70天一遍leetcode: day 33-3
  3. 【VS开发】Wix 安装教程
  4. Arduino学习笔记24
  5. PL/SQL-FOR UPDATE 与 FOR UPDATE OF的区别
  6. 关于《编程之美》稿酬捐赠的补充说明
  7. ant design pro模板_分享10 个开源免费且优秀的后台管理系统模板
  8. java判断字符串是否包含日文
  9. Win7点击文件夹右键可打开cmd控制台,并获取当前目录
  10. Yii 自定义模型路径
  11. sql server 配置管理器里为什么是32位_FT VIEW | SE高级应用之数据存入SQL数据库
  12. wps android 接口,Android调用WPS接口打开office类型文件
  13. java编写蠕虫病毒_网络蠕虫病毒代码分析
  14. Eclipse创建JSON文件及其他操作
  15. CSS表格和表单的样式
  16. 01、winPE64位 -- UEFI+GPT启动引导分区方式 -- win10专业版(1903)64位安装 -- 数字许可永久激活
  17. 让我们旋转跳跃不停歇~~~当3D打印遇上八音盒!(一)
  18. 怎样更改itunes备份位置_妙招更改iTunes备份地址释放C盘空间
  19. 基于appcan平台开发一个简单的手机app--登录注册例子
  20. dataworks/odps上传资源,注册函数,下载资源

热门文章

  1. python发送邮件函数
  2. python发送邮件封装
  3. el-cascader省市区 三级数据
  4. [yocto]poky环境搭建和基本概念
  5. 平台化转型与轻资产化运营,如涵如何重讲网红故事?
  6. java界面小程序-模拟算卦六爻
  7. html表白earth,浪漫表白的英文句子大全
  8. Git 工作中怎么用?
  9. 如何迁移GitGitolite服务器
  10. 十七、网上商城项目(3)