基于WINAPI的文件操作

原文地址 http://read.newbooks.com.cn/info/126910.html

 

WINAPI提供了两种文件操作函数,一组是为了和16位程序兼容,这种函数比较简单;而另一种是专门为32位程序设计,在使用时就显得麻烦些,下面我就把这两组函数一一介绍:

一、和16位程序兼容的一组函数

函数 说明 对应BCB库函数
_lopen() 打开文件 FileOpen()
_lclose() 关闭文件 FileClose()
_lread() 读文件 FileRead()
_lwrite() 写文件 FileWrite()
_llseek() 文件定位 FileSeek()
_lcreat() 创建文件 FileCreate()

⑴_lopen

原型:HFILE _lopen(
        LPCSTR lpPathName, // 文件名
        int iReadWrite //文件存取方式
         );

功能:打开文件,成功返回其句柄,与此类似的还有个OpenFile()函数,可自行查阅帮助文件。

参数说明:lpPathName是要打开的文件名,iReadWrite是文件存取方式,主要有3种方式:

  • OF_READ:以只读方式打开
  • OF_READWRITE:以读写方式打开
  • OF_WRITE:以只写方式打开

  还有如 OF_SHARE_COMPAT 等属性,由于不太常用,为里就不一一介绍了。

 

⑵_lclose()

原型:HFILE _lclose( HFILE hFile);

功能:关闭文件,成功返回0

参数说明:hFile:要关闭的句柄

⑶_lread()

 

原型:UINT _lread( HFILE hFile, // 文件句柄
        LPVOID lpBuffer, // 保存数据的缓冲区
        UINT uBytes // 要读取的长度
        );

功能:读文件,返回实际读取的字符数,与此类似的还有个_hread()函数,可自行查阅帮助文件。

⑷_lwrite()

原型:UINT _lwrite( HFILE hFile, // 文件句柄
        LPCSTR lpBuffer, // 保存数据的缓冲区
        UINT uBytes // 要写的长度
        );

功能:写文件,返回实际写的字符数,与此类似的还有个_hwrite()函数,可自行查阅帮助文件。

 

⑸_llseek()

原型:LONG _llseek( HFILE hFile, // 文件句柄
          LONG lOffset, // 移动的量
          int iOrigin // 移动的基准位置
          );

功能:移动文件的读写位置,成功返回移动后的文件读写位置

参数说明:iOrigin的取值是以下三种情况之一:

  • FILE_BEGIN:文件头部
  • FILE_CURRENT:文件当前位置
  • FILE_END:文件尾部

⑹_lcreat()

原型:HFILE _lcreat( LPCSTR lpPathName, //要创建的文件名
           int iAttribute // 文件属性
          );

功能:创建文件,成功返回其句柄

参数说明:文件属性是以下值的和:

  • 0:普通文件
  • 1:只读文件
  • 2:隐含文件
  • 4:系统文件

  这几个函数的用法和所列的BCB库函数差不多,建议使用BCB的库函数。可参阅前文基于BCB库函数的文件操作

二、32位程序专用文件操作函数

  WINAPI中还有一组32位程序专用的文件操作函数,这也是M$推荐使用的函数,但我还是推荐使用BCB的库函数,除非功能不足,由于此类函数众多,我就只对重要的作简要介绍,如果真需要时可查询帮助系统。

函数 功能
CreateFile() 创建或打开一个文件
CopyFile(),CopyFileEx() 拷贝文件
CreateDirectory(),CreateDirectoryEX() 创建目录
DeleteFile() 删除文件
GetDriveType() 获取驱动器类型
GetFileAttributes(),GetFileAttributesEx() 获取文件属性
GetFileSize() 获取文件字节大小
GetFullPathName() 取得文件全路径文件名
GetShortPathName() 取得文件8.3格式全文件名
GetTempFileName() 生成一个临时文件名
GetTempPath() 取临时文件名的路径
LockFile(),LockFileEx() 锁文件
MoveFileEx() 移动或更名文件
ReadFile(),ReadFileEx() 读文件
SearchPath() 搜寻文件
SetFileAttributes() 设置文件属性
SetFilePoint() 设置文件读写位置
UnLockFile(),UnLockFileEx() 对文件解除锁定
WriteFile(),WriteFileEx() 写文件

 

你可能感兴趣的:(File,winapi)