Получить расположение сектора файла - PullRequest
3 голосов
/ 18 февраля 2009

Основываясь на имени файла или дескрипторе файла, существует ли метод Win-API для определения того, с какого физического сектора начинается файл?

Ответы [ 4 ]

7 голосов
/ 03 августа 2009

Вы можете получить распределение файлового кластера, отправив FSCTL_GET_RETRIEVAL_POINTERS с помощью DeviceIoControl.

1 голос
/ 18 февраля 2009

Вы должны прочитать таблицу размещения напрямую.

0 голосов
/ 20 февраля 2009

Нет. Зачем? Потому что файловая система - это абстракция физического оборудования. Вам не нужно знать, находитесь ли вы на RAM-диске, жестком диске, компакт-диске или сетевом диске, или ваши данные сжаты или зашифрованы - Windows позаботится об этих маленьких деталях.

Вы всегда можете открыть физический диск, но вам понадобятся знания используемой файловой системы.

Что вы пытаетесь сделать с этим?

0 голосов
/ 18 февраля 2009

Я подозреваю, что такой функции нет.

Даже если вы знаете, где файл начинается, что хорошего он будет делать? Остальная часть файла может быть где угодно, как только файл станет больше одного сектора из-за фрагментации.

Возможно, вам потребуется более глубокое понимание используемой файловой системы и чтение необходимой информации из таблицы размещения файлов или такого механизма.

...