写文件是编程中很常用的手段。我们通常可以利用系统提供的API函数CreateFile去创建或打开一个文件(是创建还是打开在参数中可以设置)
HANDLE CreateFile(
LPCTSTR lpFileName, //文件名
DWORD dwDesiredAccess, //访问模式
DWORD dwShareMode, //共享模式
LPSECURITY_ATTRIBUTES lpSecurityAttributes, //设为NULL
DWORD dwCreationDisposition, //创建方式
DWORD dwFlagsAndAttributes, //属性
HANDLE hTemplateFile
);
然后如果返回的句柄不是INVALID_HANDLE_VALUE时就代表打开或创建成功了。然后利用可以写文件和读文件了
BOOL WriteFile(
HANDLE hFile, //CreateFile反回的句柄
LPCVOID lpBuffer, //包含写向文件的数据
DWORD nNumberOfBytesToWrite, //数据包含的字符串个数
LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped
);
BOOL ReadFile(
HANDLE hFile, ////CreateFile反回的句柄
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped
);
其中还有几个很有用的函数比如
BOOL SetEndOfFile( //把文件目前的Pointer挪到文件尾
HANDLE hFile
);
DWORD SetFilePointer( //设置文件目前的Pointer
HANDLE hFile,
LONG lDistanceToMove,
PLONG lpDistanceToMoveHigh,
DWORD dwMoveMethod
);
此外还有系统几个函数比如:
BOOL SetFileAttributes( //设置文件属性
LPCTSTR lpFileName,
DWORD dwFileAttributes
);
BOOL GetFileTime( //取得文件时间
HANDLE hFile,
LPFILETIME lpCreationTime,
LPFILETIME lpLastAccessTime,
LPFILETIME lpLastWriteTime
);
BOOL SetFileTime( //设置文件时间
HANDLE hFile,
const FILETIME* lpCreationTime,
const FILETIME* lpLastAccessTime,
const FILETIME* lpLastWriteTime
);
以上是利用系统的API函数来实现读写文件的方法
MFC中有一个封装了以上这些API函数操作的类叫做CFile类。一般对文件操作方法都有。而且更加简单易用。