我一直在寻找一种方法来连接大文件(几千兆字节),而不必重写其中一个文件。我确信操作系统在操作主文件表时会在内部执行此操作。这纯粹是为了内部应用程序,即使以数据完整性为代价,速度也至关重要(如果存在未记录的API风险)。该应用程序处理大量高带宽,多通道以太网数据,其中损坏的工作单元(在这种情况下为文件)不会对整体处理结果产生很大影响。
在合并文件A
和B
时,所涉及的工作量等于:A[Read] + B[Read] +
C [写入]`。你们中的任何一位大师都会对如何解决这个问题直接了解MFT吗?
我无法获得任何关于要探索哪种API的线索,并希望得到一些指示。虽然应用程序处于托管状态,但我很乐意探索原生API,甚至设置轻量级虚拟机进行测试。
提前致谢。
答案 0 :(得分:0)
这不是文件系统所能做的事情。文件系统根据集群和数据块为文件分配空间,而不是以字节为单位。连接这样的两个文件只有在它们都是簇大小的倍数时才有效,并且FS可能有其他关于如何将块分配给封面下文件的假设。如果您卸载它并编写了一个直接操作所有文件系统结构的工具,您可以自己对文件系统执行此操作。但是,如果你这样做,你冒着破坏整个磁盘的风险,而不仅仅是一个文件。
答案 1 :(得分:0)
如果要将文件B附加到文件A,您只需打开文件A以进行写入+追加,寻找文件结尾,然后从B读取并写入A. / p>
如果要创建文件C作为文件A和文件B的串联,那么您将不得不创建文件C并将A复制到C,然后复制到C到C.
没有任何捷径。
答案 2 :(得分:0)
我不知道您的具体情况但是可以不将文件一起附加到一起吗?只需在接收数据时将文件丢入某个目录,并保留索引
然后,当需要数据时,使用索引拼凑数据以创建一个新文件? 那么你只需要按需合并昂贵的文件吗?