Являются ли файлы 0 байтов действительно 0 байтами? - PullRequest
6 голосов
/ 10 февраля 2011

У меня простой вопрос.

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

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

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

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

Ответы [ 4 ]

5 голосов
/ 10 февраля 2011

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


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

2 голосов
/ 10 февраля 2011

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

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

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

2 голосов
/ 10 февраля 2011

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

2 голосов
/ 10 февраля 2011

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

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

...