где нужно смотреть размер файлов

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

есть папка в ней файлы. где нужно смотреть её размер в "Размер:" или "На диске:"

вообще если "Размер:" и "На диске:" отличаются

что вообще значит "На диске:"?


Ответы (2 шт):

Автор решения: Эникейщик

"Размер" может быть любым (в пределах доступного диска). Это и есть размер файла.

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

Поэтому "на диске" почти всегда больше, чем "размер" (они будут равными только в том случае, когда размер файла точно равен какому-то целому количеству кластеров, например, 4кб, или 32кб). Если у вас сохранен текстовый файл с одной буквой, то "размер" будет 1 байт, а "на диске" будет равно размеру кластера. Например, размер кластера диска на изображении ниже равен 4кб.

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

→ Ссылка
Автор решения: Anton Shchyrov

Файлы на диске хранятся кластерами. Размер кластера определяется при создании раздела диска. Файл может занимать только целое число кластеров. Отсюда разница.

Например, если размер кластера 4096 байт, а размер файла 1 байт, то на диске он будет занимать 4096 байт. Если размер файла 4097 байт, то на диске он занимает 8192 байта.

Противоположный пример - разреженные (sparsed) файлы. Это файлы с пустым содержимым. Например, в файле может быть заполнены только первые 10 байт, потом с 3000 до 3200 и и с 102410241024 до 102410241024 + 10 байт. Тогда размер файла будет 102410241024 + 10 байт, а на диске он будет занимать 30 байт (если не ошибаюсь, то разреженные файлы не выравниваются на размер кластера)

Третий случай: на NTFS файлы могут состоять из набора потоков (Alternate Data Stream - ADS). Так вот, файловые менеджеры показывают только один главный поток, а место занимают все.

Четвертый случай - это символические ссылки. Когда физически файл лежит в одном месте, а из разных мест на него указывают ссылки. Тогда для каждой ссылки будет указан размер реального файла, но на диске он будет занимать место только один раз.

Пятый случай - это сжатые NTFS папки. Когда физически вся папка упаковывается в один zip архив. Тогда во-первых физический размер файла уменьшается из-за сжатия, а во-вторых выравнивание по кластеру работает уже не для каждого отдельного файла, а для всего архива

P.S. Как оказалось, альтернативные потоки Explorer тоже не видит и показывает размер на диске только для основного потока

P.S.2 Похоже в современных системах с выравниванием на размер кластера все не так просто. На скриншоте обычный файл размером 10 байт в Windows 10

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

Такое ощущение, что маленькие файлы теперь хранятся в каком-то общем кластере

→ Ссылка