博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win32中文件的操作
阅读量:4677 次
发布时间:2019-06-09

本文共 3011 字,大约阅读时间需要 10 分钟。

1 文件的创建或打开

  HANDLE CreateFile( LPCTSTR lpFileName,                //文件路径和名称
            DWORD dwDesiredAccess,                 //访问方式,最常用的值是GENERIC_READ,GENERIC_WRITE或两         个:GENERIC_READ|GENERIC_WRITE.
            DWORD dwShareMode,                   //共享模式,FILE_SHARE_DELETE,FILE_SHARE_READ,FILE_SHARE_WRITE
            LPSECURITY_ATTRIBUTES lpSecurityAttributes,      //安全属性,不同身份是否能打开
            DWORD dwCreationDisposition,             //创建方式
            DWORD dwFlagsAndAttributes,           //文件属性,只读或隐藏
            HANDLE hTemplateFile                 //拷贝的文件句柄

            );

 

2 文件的关闭

  BOOL CloseHandle(HANDLE hObject );        //要关闭的句柄

 

3 文件的数据写入

  BOOL WriteFile( HANDLE hFile,               //文件句柄
           LPCVOID lpBuffer,             //写入数据的BUFF的地址
           DWORD nNumberOfBytesToWrite,    //写入数据的BUFF的长度
           LPDWORD lpNumberOfBytesWritten,    //返回被写入数据的长度
           LPOVERLAPPED lpOverlapped        //默认NULL

          );

 

 

4 文件的数据读取

  BOOL ReadFile( HANDLE hFile,               // 文件句柄
          LPVOID lpBuffer,               //读入数据的BUFF的地址
          DWORD nNumberOfBytesToRead,     //读入数据的BUFF的长度
          LPDWORD lpNumberOfBytesRead,      //返回被读入数据的长度
          LPOVERLAPPED lpOverlapped        //默认NULL

          );

 

5 获取文件长度

  DWORD GetFileSize( HANDLE hFile,            //文件的句柄
              LPDWORD lpFileSizeHigh        //高32位

            );                   //返回值是低32位

  文件的长度64位 = (低32位, 高32位 )

 

6 设置文件指针

  DWORD SetFilePointer( HANDLE hFile,             //文件的句柄
              LONG lDistanceToMove,        //偏移量,低32位
              PLONG lpDistanceToMoveHigh,      //偏移量,高
              DWORD dwMoveMethod       //相对位置,FILE_BEGIN,FILE_CURRENT,FILE_END

             );

   返回值是返回偏移量的低32

 

7 拷贝文件

  BOOL CopyFile( LPCTSTR lpExistingFileName,        //源文件路径
            LPCTSTR lpNewFileName,           //目的文件路径
          BOOL bFailIfExists             //是否覆盖目的同名文件,FALSE为覆盖

          );

 

8 删除文件

  BOOL DeleteFile(LPCTSTR lpFileName );          //要删除的文件

 

9 文件的属性

  9.1 GetFileAttributes
    DWORD GetFileAttributes(LPCTSTR lpFileName );      //文件名
     返回值是获取到的文件的属性标示

   9.2 GetFileAttributesEx

    BOOL GetFileAttributesEx(LPCTSTR lpFileName,                //文件名
                  GET_FILEEX_INFO_LEVELS fInfoLevelId,      //获取文件属性信息的级别
                  LPVOID lpFileInformation               //对应级别的数据结构的地址
                  );
   9.3 设置文件属性
    BOOL SetFileAttributes( LPCTSTR lpFileName,                 //文件名 pointer to filename
                 DWORD dwFileAttributes                //属性标示

                 );

 

10 文件的查找

  1 查找文件

    HANDLE FindFirstFile( LPCTSTR lpFileName,                    //查找的路径

                LPWIN32_FIND_DATA lpFindFileData             //返回查找信息
                 );
      返回值 - 查找句柄
  2 获取查找到的结果
    BOOL FindNextFile( HANDLE hFindFile,                 //查找句柄
              LPWIN32_FIND_DATA lpFindFileData       //返回查找信息
             );
     返回值 - 成功是TRUE
  3 关闭查找
    BOOL FindClose( HANDLE hFindFile           //查找句柄
            );

 

转载于:https://www.cnblogs.com/zjzsky/p/3475262.html

你可能感兴趣的文章
C#实现对文件目录的实时监控
查看>>
Python3 序列解包
查看>>
「Linux」VMware安装centos7(一)
查看>>
Java中模拟POST上传文件
查看>>
Ubuntu 中sendmail 的安装、配置与发送邮件的具体实现
查看>>
时隔2月,我的第二篇
查看>>
[导入]C++ OpenGL底层和C# GUI无缝联合!
查看>>
调试程序Bug-陈棚
查看>>
STM32 寄存器库和固件库
查看>>
第11周表格
查看>>
linux运维云计算课程学习,Linux云计算面试时遇到的问题
查看>>
Abiword对话框资源
查看>>
跟我一起写 Makefile
查看>>
C# uri
查看>>
GPS定位 测试
查看>>
前端使用AngularJS的$resource,后端ASP.NET Web API,实现增删改查
查看>>
探索从 MVC 到 MVVM + Flux 架构模式的转变
查看>>
传统认知PK网络认知 刚子扯谈烤串认知
查看>>
字节数组java加密与解密
查看>>
矩形运算
查看>>