【发布时间】:2017-09-18 18:06:29
【问题描述】:
目前,我正在考虑尝试删除部分基本上属于专有存档格式的文件;为了支持删除文件的能力,我试图弄清楚如何删除文件的一部分(给定偏移量和长度)。我看到节点的 fs 模块有很多附加逻辑,但似乎没有“拼接”文件的部分。
这可能吗?我是否必须求助于不太受欢迎的选项,即写入一个全新的文件?
【问题讨论】:
-
格式是什么?文件是文本文件还是二进制文件?你怎么知道在哪里分裂?你为什么不想写一个新文件呢?
-
它是 SBAsset6 - 格式主要是二进制。文件本身有一个元表,其中包含相当于虚拟文件路径、偏移量(以字节为单位)和长度(以字节为单位)的映射。我正在尝试处理从存档中删除内容(对“文件路径”的更新导致字节的负净变化,或者文件被删除)并且不会留下浪费的字节。我还试图避免创建新文件以减少正在进行的 I/O 量 - 大多数档案都很小,但我遇到了一些高达 250MB+ 的文件。
标签: javascript node.js file