Требуется программно нарисовать диаграмму фрагментации файлов (по типу тех, что генерят Diskeeper, Norton SpeedDisk и т.п.). Дефрагментатор писать не нужно Только отобразить текущее положение дел.
Как в Windows определить, в какой части диска физически дежит файл, какую цепочку кластеров занимает и тому подобные вещи?
Спасибо.
Для FAT32 всё просто. Читаешь 0 сектор, определяешь начало таблицы FAT. Если знаешь первый кластер файла, то элементарно проходишь по таблице, составляешь список его кластеров. Если знаешь только путь и имя файла, то сначала спускаешься по каталогам до его местоположения и узнаёшь первый кластер из сигнатуры файла в каталоге. Структура FAT32 в интернете на каждом углу висит. Вот, например: здесь. Как считать сектор можно прочесть здесь.
В NTFS геморроя, думаю, будет побольше. Добавлено спустя 52 секунды З.Ы. Скачай ещё WinHex - полезная программка для исследования харда.
Ну структуру ФАТ-а я, разумеется, в общих чертах себе представляю Я имел в виду несколько иное - нет ли для этих целей каких-то боле-менее стандартных методов.
На каком-то форуме (может даже и здесь, не помню) я мельком встречал сообщение, что мол сейчас все (или почти все) дефрагментаторы работают через Microsoft Defragment API, который делает эту работу. А сторонним софтмейкерами типа остались рюшечки типа интерфейса, шедулеров и пр.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения