где нужно смотреть размер файлов
есть папка в ней файлы. где нужно смотреть её размер в "Размер:" или "На диске:"
вообще если "Размер:" и "На диске:" отличаются
что вообще значит "На диске:"?
Ответы (2 шт):
"Размер" может быть любым (в пределах доступного диска). Это и есть размер файла.
"На диске" может быть только кратным определенному числу, т.к. хранение файлов на диске организуется кластерами, и минимальный размер, который файл будет занимать на диске, равен размеру кластера.
Поэтому "на диске" почти всегда больше, чем "размер" (они будут равными только в том случае, когда размер файла точно равен какому-то целому количеству кластеров, например, 4кб, или 32кб). Если у вас сохранен текстовый файл с одной буквой, то "размер" будет 1 байт, а "на диске" будет равно размеру кластера. Например, размер кластера диска на изображении ниже равен 4кб.
Файлы на диске хранятся кластерами. Размер кластера определяется при создании раздела диска. Файл может занимать только целое число кластеров. Отсюда разница.
Например, если размер кластера 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
Такое ощущение, что маленькие файлы теперь хранятся в каком-то общем кластере


