bsp; 获取文件当前的位置
GetStatus( ) 获取文件的状态
LockRange( ) 锁定文件的一部分
Open( ) 打开文件
Read( ) 从文件中读取数据
Remove( ) 删除文件
Rename( ) 重命名文件
Seek( ) 设置文件中位置
SeekToBegin( ) 设置至文件头的位置
SeekToEnd( ) 设置至文件尾的位置
SetFilePath( ) 设置文件路径
SetLength( ) 设置文件长度
SetStatus( ) 设置文件状态
UnlockRange( ) 对文件的一部分进行解锁
Write( ) 向文件中写数据
读者可以从表中看出,CFile类提供大量的文件处理能力。下面演示了如何调用CFile类的一些成员函数。然而,其他函数的绝大部分也是非常容易使用的。
下面是一个简单的代码片段,它创建和打开一个文件,向文件中写入一个串,然后收集一些关于该文件的信息:
// Create the file.
CFile file(襎ESTFILE.TXT*, CFile::modeCreate || CFile::modeWrite);
// Write data to the file.
CString message(襀ello file!*);
int length = message.GetLength();
file.Write((LPCTSTR)message, length);
// Obtain information about the file.
CString filePath = file.GetFilePath();
Int fileLength = file.GetLength();
注意,在给Constructor函数(其参数是文件名和打开状态标志)传递文件名时,并不需要显式地打开文件。一次可以使用多个状态标志,可以简单地将它们“或”在一起。这些状态标志描述了如何打开文件、何种操作是有效的。它们作为CFile类的一部分来定义,其含义如下表:
表2 文件状态标志
标 记 说 明
CFile::modeCreate 创建新的文件或把已存在的文件长度截为0
CFile::modeNoInherit 不允许子过程继承
CFile::modeNoTruncate 创建文件时,如果文件已经存在则不对文件截断
CFile::modeRead 只允许读操作
CFile::modeReadWrite 允许读和写操作
CFile::modeWrite 只允许写操作
CFile::shareCompat 允许其他过程打开文件
CFile::shareDenyNone 允许其他过程对文件进行读写
CFile::shareDenyRead 不允许其他过程对文档进行读操作
CFile::shareDenyWrite 不允许其他过程对文档进行写操作
CFile::shareExclusive 不允许其他过程访问
CFile::typeBinary 设置文件为二进制模式
CFile::typeText 设置文件为文本模式
CFile::Write( )需要一个指向存放数据的缓冲区的指针和要写的字节数。注意在调用Write ( )时,LPCTSTR是强制转换运算符。它是由CString类定义的,它提取类中的字符串。
此外,这里没有调用Close( ),当文件超出范围之外时,CFile的析构函数自动关闭文件。
从文件中读并不比向文件中写更难:
// Open the file.
&n