【发布时间】:2014-01-03 12:39:25
【问题描述】:
我一直在寻找一种将大文件(几 GB)连接在一起而不必重写其中一个文件的方法。我确信操作系统在操作主文件表时会在内部执行此操作。这纯粹是针对速度至关重要的内部应用程序,即使以数据完整性为代价(如果冒着未记录的 API 的风险)。该应用程序处理大量高带宽、多通道以太网数据,其中损坏的工作单元(在本例中为文件)不会对整体处理结果产生很大影响。
在合并文件A 和B 时,所涉及的工作量等于:A[Read] + B[Read] +C[Write]`。你们中的任何一位 NT 专家能否阐明如何解决这个问题以直接进入 MFT?
我无法获得关于要探索哪个 API 的任何线索,希望能得到一些建议。尽管该应用处于托管状态,但我很乐意探索原生 API,甚至设置轻量级 VM 进行测试。
提前致谢。
【问题讨论】:
-
您的建议在许多要求属于文件的每个集群都是连续数据(最后一个除外)的文件系统中是不可能的。
-
打开A,将文件指针设置到文件末尾,写入B的内容。破解MFT没有意义。在此过程中丢失 A,尤其是在出错时,通常不会被认为是非常可接受的。
标签: c# .net windows-kernel windows-nt nt-native-api