日历

2008 8.28 Thu
     12
3456789
10111213141516
17181920212223
24252627282930
31      
«» 2008 - 8 «»

文章搜索

日志文章

2007年04月19日 14:12:58

如何使用SetFilePointer

如果需要移动文件指针到相关位置(和文件读写不同,这个函数没有异步版本),使用

DWORD SetFilePointer(
HANDLE hFile,           // handle to file
LONG lDistanceToMove,     // bytes to move pointer
PLONG lpDistanceToMoveHigh, // bytes to move pointer
DWORD dwMoveMethod       // starting point
);
其中各项参数的含义为:
hFile:文件句柄,为CreateFile时返回的句柄
lpBuffer:保存读入的数据的指针
lDistanceToMove:移动的字节数低DWORD
lpDistanceToMoveHigh:移动的字节数高DWORD,为了支持64位(2的64次方字节)长度的大文件,而用来指定64字节的高32位,如果文件大小只需要32位就可以表示,则设置为NULL
ldwMoveMethod:移动方法,可以选择下面的值。
FILE_BEGIN 从文件开始处开始移动
FILE_CURRENT 从文件开始除开始移动
FILE_END 从文件末尾开始移动


Tags: happymice  

类别: 无分类 |  评论(3) |  浏览(630) |  收藏
3楼 [匿名]x 2008年08月06日 13:05:57 Says:
SetFilePointer
2楼 [匿名]bbbccc2009 2008年07月21日 17:54:35 Says:
......
hFFF = CreateFileA(STR_FILE_NAME, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL)
SetFilePointer(hFFF, 0, NULL, FILE_BEGIN);
ReadFile(hFFF, readBuf, sizeof(readBuf), &dataLen, NULL);
......

我见过读取硬盘第一个扇区是这样的,读文件应该也差不多。
1楼 [匿名]123 2008年04月30日 15:06:06 Says:
能给个实例吗?这种介绍能理解但是需要实例看一下
发表评论