关于写文件(系统API函数&CFile类)

来源:互联网 发布:排水管45度计算法图解 编辑:程序博客网 时间:2024/05/29 09:31

 

写文件是编程中很常用的手段。我们通常可以利用系统提供的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类。一般对文件操作方法都有。而且更加简单易用。

原创粉丝点击