读书人

剔除文件开头一字节效率

发布时间: 2012-07-29 15:26:14 作者: rapoo

删除文件开头一字节,效率
通常,文件操作,删除文件开头一字节,就是把后面所有的内容往前移。
有没有效率更高的办法,截掉开头,告诉操作系统,文件是从这里开始的?

[解决办法]

C/C++ code
void SetBeginOfFile(HANDLE hFile, int offset){  HANDLE hFileMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0, NULL);  LPVOID lpMap = MapViewOfFile(hFileMap, FILE_MAP_READ|FILE_MAP_WRITE, 0, 0, 0);  DWORD dwFileSize = GetFileSize(hFile, NULL) - offset;  offset+=(int)lpMap;  CopyMemory((PVOID)lpMap, (CONST VOID *)offset, dwFileSize);  UnmapViewOfFile(lpMap);  CloseHandle(hFileMap);  SetFilePointer(hFile, dwFileSize, NULL, FILE_BEGIN);  SetEndOfFile(hFile);}void main(){  HANDLE hFile = CreateFile("test.txt", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);  SetBeginOfFile(hFile, 1);  CloseHandle(hFile);} 

读书人网 >VC/MFC

热点推荐