SetFilePointerEx()设置大文件的用法

用SetFilePointerEx()设置文件指针的位置:
函数原型:
BOOL SetFilePointerEx(
HANDLE hFile,
LARGE_INTEGER liDistanceToMove,
PLARGE_INTEGER pliNewFilePointer,
DWORD dwMoveMethod);
hFile  我们想要修改哪个文件内核对象的文件指针
liDistanceToMove  标识文件指针要移动多少个字节
pliNewFilePointer  系统会在pliNewFilePointer参数指向的LARGE_INTEGER结构体中保存文件指针的新值
dwMoveMethod  标识移动文件指针的方式,有三个值可以选择:FILE_BEGIN 标识文件指针的起始位置为文件首,
可以传给SetFilePointerEx的dwMoveMethod参数的值
值 含义
FILE_BEGIN 文件指针起始位置为文件起始位置,当调用SetFilePointerEx成功后,文件指针将指向liDistanceToMove指向的位置。
FILE_CURRENT 文件指针起始位置为当前文件指针指向的位置
FILE_END 文件指针起始位置为文件末尾

当文件指针移动超过32位时,利用SetFilePointer函数需要设置高位和低位,比较麻烦,这里可以用SetFilePointerEx()来代替。

重点讲一下LARGE_INTEGER的用法:
假设我们需要移动6836781056个字节
LONGLONG disTomove = 6836781056;
LARGE_INTEGER numberMove;
numberMove.QuadPart = disTomove;
SetFilePointerEx(hFile, numberMove, NULL, FILE_BEGIN);
其中hFile代表文件句柄,这样就可以移动大文件指针了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值