Проект NTFS Extensions
Платформа .Net поддерживает небольшую часть возможностей файловой системы NTFS. Программисты вынуждены либо игнорировать остальные возможности, либо обращаться к WinAPI напрямую. Многие функции, используемые для работы с NTFS, требуют слишком сложной подготовки и даже многократных вызовов для выполнения одной операции. Данный проект реализует эти вызовы в стиле .Net, благодаря чему любой программист может ими пользоваться также, как и методами из библиотек .Net.
Большинство методов доступны в двух вариантах: как статический метод и как расширение. Вы можете вызывать статические методы классов этой библиотеки или расширенные методы стандартных классов вроде Stream или FileInfo. Чтобы использовать расширяющие методы, просто импортируйте пространство имен NTFSExtensions.
Файлы
Текущая опубликованная версия библиотеки 0.1. Версия 0.2 потребовала переработки.
Последняя версия файла библиотеки: NTFSExtensions.dll
Реализована поддержка следующих возможностей NTFS:
- Сжатые и разреженные файлы
- Жесткие и символические ссылки
Иерархия библиотеки
Рабочие классы
static class Compression
Этот статический класс служит для работы со сжатыми и разреженными файлами.
- GetAllocatedRanges
- Возвращает необнуленные интервалы. Эта функция очень полезна для обработки только тех частей файла, которые содержат полезную информацию.
- GetLengthCompressed
- Возвращает физическую длину файла с учетом сжатия или разреженности. Для несжатых файлов возвращает логическую длину.
- GetZeroRanges
- Возвращает обнуленные интервалы.
- RefillZeroRegions
- Восстанавливает обнуленные интервалы и заполняет их нулями. Эту функцию нужно вызывать перед тем, как снять флаг разреженного файла.
- SetCompressedAttribute
- Делает файл сжатым или несжатым.
- SetSparseAtribute
- Делает файл разреженным или обычным.
- SetZeroData
- Заполняет интервал нулями. Если файл разреженный и обнулен достаточно большой интервал, некоторые кластеры могут быть освобождены.
Классы и структуры для передачи данных
- struct Range
- Структура, моделирующая интервал в потоке.
- class VolumeInformation
- Класс, моделирующий основные параметры разметки тома.