Каков фактический размер файла?

в Windows XP, под File Properties, что реальный размер файла? Размер и размер на диске?

Я ищу точно размер файла в байтах. Почему Windows винит использование дополнительного пространства на диске, вместо того, чтобы называть его Size Windows takes to store this file?

8
задан bertieb
07.11.2022 7:42 Количество просмотров материала 2764
Распечатать страницу

8 ответов

Я не верю, что это специфическая проблема windows. Поскольку диски распределены блоками, файл потенциально займет больше места на диске, чем его фактический размер, если размер файла не является точным кратным размеру блока дисков.

считаем:

File         |------3.4k------|   |-------------4.1k--------| 
Disk Blocks  |--------4k----------|--------4k----------|--------4k----------|

файлы на диске должны быть выровнены по выделенным блокам (они должны начинаться с того места, где начинается блок), так, например, если фактический размер файлов был 3.4 k, а размер блока диска был 4k, размер файлов на диске будет 4k потому что, несмотря на то, что в файле есть только 3.4 k данных, он эффективно занимает 4k на диске, потому что вы не можете использовать оставшуюся часть этого блока ни для чего.

17
отвечен Jeremy 2022-11-08 15:30

Size-фактическое количество байт в файле.

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

18
отвечен Eric Rosenberger 2022-11-08 17:47

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

"маленький" адресуемый кусок пространства на жестком диске секторов (чаще всего 512 байт), и вы не можете читать или писать меньше. Если требуется записать один байт в сектор, необходимо прочитать сектор, изменить байт и записать сектор обратно. Вот как работает физика / электроника. "Блок", как правило, один или несколько секторов и представляет наименьший кусок пространства, который файловая система выделит для файла. Старые файловые системы DOS на основе FAT увеличивали размер блока по мере увеличения размера диска.

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

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

10
отвечен Roddy 2022-11-08 20:04

Windows всегда правильно рассчитывал размер файла при отображении в больших единицах (1KB = 1,024 B и т. д.).

Size фактический размер файла, в то время как размер на диске является фактический размер на жестком диске. Так как жесткие диски разбиты на блоки, вы должны потреблять блок полностью. Я был бы как иметь ведро держит 4L и Вы имеете 5L воды, вас 2 ведра держать воду.

6
отвечен Samuel 2022-11-08 22:21

размер. Size-on-disk-количество блоков * blocksize, необходимое для хранения файла на диске.

5
отвечен DMKing 2022-11-09 00:38

размер на диске ссылается на тот факт, что диск разделен на блоки, поэтому диск с использованием блоков 4kb сообщит размер на диске 4k

Я сделал текстовый файл с одним символом в нем и он правильно сообщает, что размер файла составляет 1 байт. Размер на диске 4k, потому что это наименьшее пространство на диске, файл может занять.

4
отвечен Jeff Martin 2022-11-09 02:55

Мммм, определить "реальный". Файл всегда занимает некоторое целое число блоков, я забываю, что размер блока в файловой системе Windows (серьезно, я не использовал Windows в около 10 лет), но я уверен, что вы можете получить количество блоков из DIR или, в худшем случае, установив Cygwin и используя ls. Таким образом," реальный " размер файла равен blocksize×количество блоков в этом смысле.

или, так как файл может заканчиваться в середине блока," реальный " размер файла может быть фактическое число байт, в этом случае wc -c дали бы что.

1
отвечен Charlie Martin 2022-11-09 05:12

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

Тони

1
отвечен Tony Lambert 2022-11-09 07:29

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх