0

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

  • 在分配单元边界上从头截断文件
  • 在分配单元边界上将文件一分为二
  • 再次在分配单元边界上从文件中间插入或删除块

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

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

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

4

2 回答 2

0

对于 NTFS 和 FAT,没有这样的 API。您可以明显地截断文件的结尾而不是开头。

由于文件系统缓存,不建议实施此操作。大多数时候,人们在 NTFS 的“顶部”实施一层来支持这一点。

于 2010-08-23T20:08:05.800 回答
0

Raymond Chen 基本上已经回答了这个问题

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

于 2010-12-01T21:15:34.083 回答