2011-02-10 2 views
6

У меня есть простой вопрос.Действительно ли 0 байтов файлов действительно 0 байтов?

Когда мы создадим файл, скажем, «abc.txt» и оставьте его пустым.
ОС покажет, что размер файла 0 байтов и занимает 0 байт на диске.

Если мы сохраним 100 из этих файлов с 0 байтами в папку, ОС также скажет, что общий размер папки составляет 0 байт.

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

В конце концов, мы сохраняем его где-то и назвали его чем-то. Должно ли не имя файла и, возможно, некоторые другие заголовки, по крайней мере, занимать некоторое пространство?

+0

Да, это занимает некоторое пространство. Номера, о которых сообщает ОС, округлены. –

ответ

4

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


Для меня это действительно сводится к определению. Либо «размер файла» относится к размер содержимого файла, либо он относится к «разности», которую он делает с точки зрения бесплатных байтов в базовой файловой системе (то есть размер содержимое (округленное до ближайшего размера блока или кластера) + байты, используемые для него: inode).

+0

Итак, ОС скрывает всю эту информацию от нас? – Karl

+0

Ну, это зависит от того, как вы его видите. Если у вас есть [FAT] (http://en.wikipedia.org/wiki/File_Allocation_Table) или что-то подобное, может быть вопросом определения, является ли имя файла, путь и т. Д. Частью самого файла , – aioobe

2

Эти данные хранятся в так называемом File Allocation Table (в контексте Windows FAT). Они создаются при форматировании жесткого диска. Для этого выделяется определенное предопределенное пространство. Я не думаю, что размер его меняется.

Например, вы отформатируете жесткий диск емкостью 100 ГБ, и вы можете использовать только 90 ГБ. Другое пространство используется файловой системой для управления/запоминания каждого файла/папки, которая сохраняется на жестком диске и где она сохраняется.

2

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

2

Ответ на этот вопрос зависит от файловой системы.

Например, в NTFS пустой файл занимает кластер, а кластер имеет размер, зависящий от размера вашего жесткого диска.

Here вы можете прочитать общий размер кластера для файловых систем Windows.

Смежные вопросы