c语⾔CFile的使⽤⽅法,CC++⽂件操作之CFile 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⼀起⽤
返回值:⽂件指针相对于起始位置的偏移量
write的返回值(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");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。