添加和删除文件片段以不完全重写它的最有效方法是什么

本文关键字:有效 是什么 方法 重写 不完全 删除 文件 片段 添加 | 更新日期: 2023-09-27 18:31:08

例如,如果我想删除文件中间的 10 个字节或在中间添加 10 个字节,是否可以在不完全重写文件的情况下做到这一点?

我想要一个最快完成此任务的解决方案。

我使用 C#,但解决方案也可能在 C 或 C++ 中。

添加和删除文件片段以不完全重写它的最有效方法是什么

您必须复制整个文件,省略或插入相关字节。 这是一个操作系统约束;由于文件在磁盘上的布局方式,根本不可能支持这种类型的操作(至少对于像Unix或Windows使用的简单文件系统)。

尝试使用 MapViewOfFile 的方法。可能有 C# 绑定。

然后,您可以将文件视为应该很快的内存。

如果你想在同一地方删除和添加==>修改/更新

在 R+ 模式下打开文件,这将让您更改为读取和写入两个操作都可以执行。然后

将文件流移动到要修改的位置,并在那里添加多少字节您不需要删除 10 个字节。需要写入 10 个字节。这将覆盖当前位置的十个字节。除了删除旧的十个字节并添加新的十个字节之外,什么都没有。

如果要删除并且不想添加任何内容,请复制到新文件,除了十个字节。

如果只想添加 ,将流位置移动到末尾,写入十个字节。

你需要fseek()

相关文章: