Иногда мне нужны определенные API-интерфейсы файловой системы, которые могут быть реализованы очень эффективно, если они поддерживаются файловой системой, но я никогда о них не слышал. Например:
- Усеченный файл с начала, на границе единицы размещения
- Разделить файл на две части на границе единицы размещения
- Вставить или удалить фрагмент из середины файла, опять же, на границе единицы размещения
Единственный известный мне способ делать подобные вещи - переписывать данные в новый файл. Преимущество в том, что единица выделения больше не актуальна, но чрезвычайно медленная по сравнению с некоторыми низкоуровневыми средствами магии файловой системы.
Я понимаю, что требования выравнивания означают, что методы не всегда применимы, но я думаю, что они все еще могут быть полезны. Например, файловый архиватор может очень эффективно обрезать архив после того, как пользователь удалит файл из архива, даже если это оставляет небольшое количество мусора с обеих сторон для выравнивания.
Это действительно так, что таких API не существует, или я просто не знаю о них? В основном я интересуюсь NTFS, но интересны и другие файловые системы.