-
-
[原创][Windows核心编程]快速清空大文件内容并保持源文件的磁盘数据位置不变
-
发表于:
2009-9-19 18:21
7349
-
[原创][Windows核心编程]快速清空大文件内容并保持源文件的磁盘数据位置不变
function fun_FastOpenFileClear(const str_param_FilePath:string;
const dword_param_Size:DWORD):Boolean ;
var
handle_File, handle_MapFile : THandle ;
file_Point : Pointer ;
begin
Result := False ;
handle_File := CreateFile(PChar(str_param_FilePath),
GENERIC_WRITE or GENERIC_READ,
FILE_SHARE_READ,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0) ;
if handle_File = INVALID_HANDLE_VALUE then
begin
Exit ;
end;
handle_MapFile := CreateFileMapping(handle_File,
nil,
PAGE_READWRITE,
0,
dword_param_Size,
nil) ;
if handle_MapFile = 0 then
begin
CloseHandle(handle_File) ;
Exit ;
end;
// 映射并清0
file_Point := MapViewOfFile(handle_MapFile,
FILE_MAP_READ or FILE_MAP_WRITE,
0,
0,
0) ;
ZeroMemory(file_Point, dword_param_Size) ;
// 释放资源
UnmapViewOfFile(file_Point) ;
CloseHandle(handle_MapFile) ;
CloseHandle(handle_File) ;
Result := True ;
end;// End fun_FastOpenFileClear()
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!