基于WINAPI的文件操作

来源:互联网 发布:淘宝产品的活动方案 编辑:程序博客网 时间:2024/05/20 23:03

原文地址 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()写文件

 

原创粉丝点击