urenai 发表于 2024-1-23 02:00:27

分享一个API

本帖最后由 urenai 于 2024-1-23 02:09 编辑

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

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

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

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

@飞扬工作室

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

BOOL SetEndOfFile(
HANDLE hFile
);

LARGE_INTEGER newFileSize;
newFileSize.QuadPart = 新的文件长度(字节);
SetFilePointerEx(hFile, newFileSize, NULL, FILE_BEGIN);
SetEndOfFile(hFile);
另外:
BOOL SetFileValidData(
HANDLE   hFile,
LONGLONG ValidDataLength
);

小蜗牛 发表于 2024-1-23 02:40:56

下次一定~火山是做减法的..虽然好用.强大..但是大部分用不到..会给人觉得,我擦,火山怎么这么复杂...
但是用得到的.就觉得,辣鸡玩意,啥都没有~

创世魂 发表于 2024-1-23 08:50:00

好,我看看能不能加到文件读写类里面。

创世魂 发表于 2024-1-23 09:14:15

可以用,封出来了。

urenai 发表于 2024-1-23 12:59:19

本帖最后由 urenai 于 2024-1-23 13:03 编辑

创世魂 发表于 2024-1-23 09:14
可以用,封出来了。
再多做点好事。
添加个   删除内容(起始位置,结束位置)

实际要做的就是,把结束位置到文件结束位置,这些数据往前移动。
使用for循环来搬迁,避免缓冲区问题来往前搬移。
页: [1]
查看完整版本: 分享一个API