我偶尔会发现自己需要某些文件系统 API,如果文件系统支持,这些 API 可以非常有效地实现,但我从未听说过它们。例如:
- 在分配单元边界上从头截断文件
- 在分配单元边界上将文件一分为二
- 再次在分配单元边界上从文件中间插入或删除块
我知道做这些事情的唯一方法是将数据重写到一个新文件中。这样做的好处是分配单元不再相关,但与一些低级文件系统魔术相比非常慢。
我了解对齐要求意味着这些方法并不总是适用,但我认为它们仍然有用。例如,在用户从存档中删除文件后,文件存档器可能能够非常有效地缩减存档,即使出于对齐原因,这会在两侧留下少量垃圾。
真的是这样的 API 不存在,还是我根本不知道它们?我最感兴趣的是 NTFS,但听说其他文件系统也会很有趣。