windows文件管理

前言

一切皆文件。
操作文件的函数总是比你想象的更强大,windows操作文件的函数返回是HANDLE句柄,它可以标识一块内存,所以它的功能也是远比文件更强大。

文件读写

  • 打开/创建文件
    HANDLE CreateFile(
    LPCTSTR lpFileName, // pointer to name of the file文件名称路径
    DWORD dwDesiredAccess, // access (read-write) mode打开方式
    DWORD dwShareMode, // share mode共享方式(其他进程共同操作时权限)
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
    // pointer to security attributes安全属性,设为NULL
    DWORD dwCreationDisposition, // how to create打开/创建方式
    DWORD dwFlagsAndAttributes, // file attributes打开追加属性
    HANDLE hTemplateFile // handle to file with attributes to
    // copy 设为NULL
    );

  • 写文件
    BOOL WriteFile(
    HANDLE hFile, // 文件句柄
    LPCVOID lpBuffer, // 缓冲数据的地址
    DWORD nNumberOfBytesToWrite, // 准备写入的数据大小
    LPDWORD lpNumberOfBytesWritten, // 实际写入的数据大小(返回值)
    LPOVERLAPPED lpOverlapped // 同步/异步方式 NULL为同步
    );
    最后的同步/异步方式将影响这个函数是否会产生阻塞,如果同步方式下,写入的数据未能投递到系统写队列里,将产生阻塞

  • 读文件
    BOOL ReadFile(
    HANDLE hFile, // 文件句柄
    LPVOID lpBuffer, // 读出数据存放的缓冲地址
    DWORD nNumberOfBytesToRead, // 准备读出的数据大小
    LPDWORD lpNumberOfBytesRead, // 实际读出的数据大小
    LPOVERLAPPED lpOverlapped // 同步/异步方式 NULL为同步
    );

  • 读取文件大小和设定文件读取位置
    DWORD GetFileSize(
    HANDLE hFile, // 文件句柄
    LPDWORD lpFileSizeHigh
    // 文件大小的高32位存放地址
    );返回值是文件大小低32

设置文件读取/写入偏移位置
DWORD SetFilePointer(
HANDLE hFile, // 文件地址
LONG lDistanceToMove, // 偏移大小低32位
PLONG lpDistanceToMoveHigh,
// 偏移大小高32位
DWORD dwMoveMethod // 偏移相对位置
);

  • 其它操作函数
    CopyFile() DeleteFile() MoveFile(),
    其中MoveFile在操作目录时是不能跨盘的

文件遍历

文件遍历利用FindFirstFile. FindNextFile. FindClose3个函数配合使用,首先用FindFirstFile打开一个目录,该函数返回一个文件句柄,循环调用FindNextFile,它的返回值如果是FALSE说明遍历完毕,而文件的信息都会记录在FindFirstFile和FindNextFile的第二个结构体参数里,
最后FindClose关闭这个文件句柄。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值