首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

删除文件开头一字节,效率,该如何解决

2013-01-25 
删除文件开头一字节,效率通常,文件操作,删除文件开头一字节,就是把后面所有的内容往前移。有没有效率更高的

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

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);
}

热点排行