用于某些类型操作的高效文件系统API

时间:2010-05-24 10:35:03

标签: language-agnostic filesystems os-agnostic

我偶尔发现自己需要某些文件系统API,如果文件系统支持这些API可以非常有效地实现,但我从未听说过它们。例如:

  • 从分配单元边界开始截断文件
  • 在分配单元边界上将文件拆分为两个
  • 再次在分配单元边界上插入或删除文件中间的块

我知道做这些事情的唯一方法是将数据重写为新文件。这样做的好处是分配单元不再相关,但与某些低级文件系统魔法相比速度极慢。

我理解对齐要求意味着这些方法并不总是适用,但我认为它们仍然有用。例如,文件归档程序可能能够在用户从归档文件中删除文件后非常有效地减少归档,即使出于对齐原因而留下少量垃圾。

这种API是否真的存在,或者我根本不知道它们?我最感兴趣的是NTFS,但是听到其他文件系统也会很有趣。

2 个答案:

答案 0 :(得分:0)

对于NTFS和FAT,没有这样的API。你可以obvoiusly截断文件的结尾,但不是开头。

由于文件系统缓存,实现此功能是不可取的。 大多数时候,人们在NTFS上“实现”一层以支持这一点。

答案 1 :(得分:0)

Raymond Chen基本上answered this question

他的回答是,不,这样的API不存在,因为对它们的需求太少。 Raymond还建议使用稀疏文件并通过归零来解除块。