ファイルシステムでサポートされていれば非常に効率的に実装できる特定のファイルシステムAPIが必要になることがありますが、聞いたことがありません。例えば:
- アロケーションユニットの境界で、ファイルを最初から切り捨てます
- アロケーションユニットの境界でファイルを2つに分割する
- アロケーションユニットの境界で、ファイルの中央からチャンクを挿入または削除します
このようなことをするために私が知っている唯一の方法は、データを新しいファイルに書き直すことです。これには、アロケーションユニットの関連性がなくなるという利点がありますが、一部の低レベルのファイルシステムの魔法と比較すると非常に低速です。
アラインメントの要件は、メソッドが常に適用できるとは限らないことを意味することを理解していますが、それでも役立つと思います。たとえば、ファイルアーカイバは、ユーザーがアーカイブからファイルを削除した後、アライメント上の理由でどちらかの側に少量のゴミが残っている場合でも、アーカイブを非常に効率的にトリミングできる場合があります。
そのようなAPIが存在しないのは本当ですか、それとも私は単にそれらに気づいていませんか?私は主にNTFSに興味がありますが、他のファイルシステムについて聞くことも興味深いでしょう。