递归火山软件开发平台

标题: 分享一个API [打印本页]

作者: urenai    时间: 2024-1-23 02:00
标题: 分享一个API
本帖最后由 urenai 于 2024-1-23 02:09 编辑

setEndOfFile 函数 (fileapi.h) - Win32 apps | Microsoft Learn

具体干什么的,你猜....

通常情况下,当我们操作大文件,增删内容后,
其中,增加内容的情况下,不需要处理冗余尺寸。
但是,如果删减了部分内容后,想要缩小尺寸,唯一的办法:创建新文件。

但是哥们,面对大文件,很无力的好么,此时,我们就需要这么一个API。
这个API是从物理层面截断文件。
使用方法也简单。
调整读写文件, 执行该API,参数还只有一个,即:文件句柄....

@飞扬工作室  

官方跟进,做好入库工作啊。

  1. BOOL SetEndOfFile(
  2.   [in] HANDLE hFile
  3. );

  4. LARGE_INTEGER newFileSize;
  5. newFileSize.QuadPart = 新的文件长度(字节);
  6. SetFilePointerEx(hFile, newFileSize, NULL, FILE_BEGIN);
  7. SetEndOfFile(hFile);
复制代码
  1. 另外:
  2. BOOL SetFileValidData(
  3.   [in] HANDLE   hFile,
  4.   [in] LONGLONG ValidDataLength
  5. );
复制代码


作者: 小蜗牛    时间: 2024-1-23 02:40
下次一定~火山是做减法的..虽然好用.强大..但是大部分用不到..会给人觉得,我擦,火山怎么这么复杂...
但是用得到的.就觉得,辣鸡玩意,啥都没有~
作者: 创世魂    时间: 2024-1-23 08:50
好,我看看能不能加到文件读写类里面。
作者: 创世魂    时间: 2024-1-23 09:14
可以用,封出来了。
作者: urenai    时间: 2024-1-23 12:59
本帖最后由 urenai 于 2024-1-23 13:03 编辑
创世魂 发表于 2024-1-23 09:14
可以用,封出来了。

再多做点好事。
添加个   删除内容(起始位置,结束位置)

实际要做的就是,把  结束位置  到  文件结束位置,这些数据往前移动。
使用for循环来搬迁,避免缓冲区问题  来往前搬移。





欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4