Как определить, какие сектора занимает файл в Windows?

Как определить, какие сектора занимает файл в Windows?

Я хочу определить, какие сектора занимает файл на жестком диске. Я хочу узнать, разбит ли файл на разные непоследовательные сектора.
Есть ли способ сделать это в Windows 10?

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

решение1

Инструменты могут использоватьAPI дефрагментации, конкретноFSCTL_GET_RETRIEVAL_POINTERS, чтобы получить список экстентов (секторных диапазонов) для заданного файла. Вы можете использовать его в командной строке, fsutilкоторая встроена в Windows:

fsutil file queryextents C:\MyFile.ext

Различные другие сторонние приложения для дефрагментации также часто имеют функцию анализа только одного файла. Например, SysInternalsКонтиг:

contig -a C:\MyFile.ext

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

введите описание изображения здесь введите описание изображения здесь


Эквивалентом Linux являетсяFIEMAPioctl, который возвращает список "экстентов" файла (и старый FIBMAP, который возвращает список блоков). Его можно использовать с помощью таких инструментов, какфайлфрагментилиxfs_io.

решение2

Perfect Disk (Raxco) делает это на жестких дисках. Он делает автоматическую дефрагментацию диска и показывает сводку фрагментации.

Если вы в какой-то момент перейдете на SSD, эта проблема станет неактуальной.

Связанный контент