98

У меня есть файл в Windows 10 с 362 байтами данных, но "размер на диске" составляет всего 0 байтов. Это простая программа "Hello world", написанная на ассемблере и сохраненная в Notepad++.

Как это возможно, что размер на диске равен нулю, если размер файла составляет 362 байта?

У меня есть SSD, а не обычный жесткий диск.

Снимок экрана диалога свойств:

Снимок экрана диалогового окна "Свойства"

1 ответ1

150

Это происходит, если файл настолько мал, что его содержимое и бухгалтерия файловой системы умещаются в 1 КБ. Чтобы сэкономить место на диске, NTFS сохраняет небольшие файлы "резидентными", сохраняя их содержимое прямо в записи файла, поэтому для него не нужно выделять кластер. Следовательно, размер на диске равен нулю, потому что нет ничего, кроме записи файла. Как только файл становится достаточно большим, NTFS делает его "нерезидентным", выделяет для него один или несколько кластеров (создавая ненулевой "размер на диске") и создает "файловую пару" в записи файла вместо данных для указать на кластер.

SSD жесткие диски или Windows 10 не влияют на это; это просто функция NTFS. Дальнейшее чтение: Четыре стадии роста файлов NTFS.

Обратите внимание, что метрика "размер на диске" не совсем верна. Например, он никогда не включает постоянную 1 КБ, которую занимает запись файла NTFS. Метрика была введена в Windows 95, которая не использовала NTFS и поэтому не могла объяснить это явление; он просто показал размер файла, округленный до следующего кратного размера кластера. Этот алгоритм оценки был перенесен в Windows 7, хотя многие версии Windows между ними использовали NTFS и резидентное хранилище. Наконец, оно было обновлено в Windows 8 для подсчета файлов с резидентными данными как нулевого размера на диске. Дополнительная информация: Что такое "Размер на диске"?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .