hFile := CreateFile(Pchar(fileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING,
    FILE_ATTRIBUTE_Normal, 0);
  if hFile <> INVALID_HANDLE_VALUE then //非法句柄
  begin
size := GetFileSize(hFile, nil);
        SetFilePointer(hFile, 0, nil, FILE_BEGIN);
        ReadFile(hFile, buf, size,nil);
...
...
... 字符转换
WriteFile(hFile, buf,Size, nil);
SetFilePointer(hFile, 0, nil, FILE_END);
// 字符转换完成后,在文件后面增加6位密钥
        WriteFile(hFile, my_key, 6, readSize, nil);
        SetEndOfFile(hFile);
  end;
CloseHandle(hFile);
过程大概如上,给一个文件转换后,在增加6位转换密钥,现在发现转换过程中有个问题,有时候会出现转换完成了,但是密钥加不上去的情况,也就是说,好像有时候前面加密了,但密钥没加上去,有时候密钥上去了,但前面没加密,请教,如何保证其过程的完整性?