SetFilePointer
VB聲明
Declare Function SetFilePointer Lib "kernel32" Alias "SetFilePointer" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
說明
在一個檔案中設定當前的讀寫位置
返回值
Long,返回一個新位置,它採用從檔案起始處開始算起的一個位元組偏移量。HFILE_ERROR意味著出錯。會設定GetLastError
參數表
參數 類型及說明
hFile Long,系統檔案句柄
lDistanceToMove Long,位元組偏移量
lpDistanceToMoveHigh Long,指定一個長整數變數,其中包含了要使用的一個高雙字偏移。可設為零(將聲明變為ByVal),表示只使用lDistanceToMove
原文:A long variable containing a high double word offset to use. May be zero (change declaration to ByVal) to use only lDistanceToMove.
dwMoveMethod Long,下述常數之一
FILE_BEGIN lOffset將新位置設為從檔案起始處開始算的起的一個偏移
FILE_CURRENT lOffset將新位置設為從當前位置開始計算的一個偏移
FILE_END lOffset將新位置設為從檔案尾開始計算的一個偏移
註解
這個函式與vb的seek語句類似。不要將函式用於通過vb的open命令打開的檔案。利用這個函式,可以處理那些長度超過4GB,但小於2^64位元組的大型檔案
VC聲明
DWORD SetFilePointer(
HANDLE hFile, // 檔案句柄
LONG lDistanceToMove, // 偏移量(低位)
PLONG lpDistanceToMoveHigh, // 偏移量(高位)
DWORD dwMoveMethod // 基準位置FILE_BEGIN:檔案開始位置 FILE_CURRENT:檔案當前位置 FILE_END:檔案結束位置
說明:移動一個打開檔案的指針
實際套用(VC)
LARGE_INTEGER li={0}; //記得初始化
li.QuadPart = 12345/*移動的位置*/;
li.LowPart = SetFilePointer(handle,li.LowPart,&li.HighPart,FILE_BEGIN);
//FILE_BEGIN:檔案開始位置
//FILE_CURRENT:檔案當前位置
//FILE_END:檔案結束位置