(Я использую Windows XP, но думаю, что она похожа во всех последних версиях Windows.)
Когда вы создаете, например, новый пустой текстовый документ, вы обнаружите в его свойствах, что он имеет размер 0 байт. Нулевые байты означают отсутствие информации . Нет данных.
Но, тем не менее, файл имеет некоторое имя, он все еще может содержать даты последнего доступа, изменения и создания. Он несет информацию о том, скрытый файл или нет, доступен ли он только для чтения или нет ...
Так где же хранятся все метаданные?
windows
file-management
metadata
Jeyekomon
источник
источник
Ответы:
Вас учили, что на жестких дисках есть файлы, но это не вся правда. На самом деле, жесткие диски содержат одно очень, очень большое число, выраженное множеством отдельных битов. Но эта интерпретация не имеет никакого смысла ни для вас, ни для вашего компьютера, потому что обработка больших чисел не очень распространена (и я говорю о ДЕЙСТВИТЕЛЬНО ОГРОМНЫХ числах). Вместо этого компьютер разбивает его на более мелкие «слова» (8-битный, 16-битный, 32-битный или любой другой) и использует его таким образом. Тем не менее, это просто набор слов (допустим, 8-битные слова, т.е. байты).
Теперь этот диск разделен. Я объяснил, почему разбиение является хорошей идеей в этом ответе :
Теперь у каждого раздела есть своя файловая система. Современные версии Windows используют NTFS , но FAT , FAT32 и exFAT поддерживаются для внешних носителей или устаревших разделов. При повседневном использовании Linux обычно используются файловые системы ext , ext4 - самая последняя.
Файловая система определяет способ физического размещения файлов на диске. Вы можете думать об этом так: если бы у вас была книга на 10000 страниц без каких-либо глав, номеров страниц или разрывов строк, ее было бы очень сложно использовать. Конечно, номера страниц и названия глав занимают немного места на странице, но они делают использование книги намного проще и быстрее. Если вы хотите перейти к главе, скажем, 42, вы просто посмотрите ее в оглавлении. Затем вы пролистываете книгу, пока не найдете нужную главу. Ваши файлы - это главы, а ваша файловая система - это книга. Метаданные файловой системы, такие как границы файлов, имена файлов и т. Д., Также занимают место, но это сравнительно небольшой объем, и это заставляет вещи работать намного быстрее.
Если ваша «глава» пуста, она все равно может иметь заголовок или номер страницы, верно? Пустой файл содержит ноль байтов данных. Метаданные занимают место, но это не часть файла, а файловая система. Иначе вы бы увидели имена файлов внутри ваших текстовых файлов?
Кстати, именно поэтому ранние версии DOS принимали только 8.3 имен - пространство, зарезервированное для имен файлов, было очень ограничено. NTFS допускает имена файлов длиной 255 символов [1] .
Еще одно слово в вашем комментарии:
Вполне возможно, что допустимые файлы больше вашего жесткого диска, благодаря функции, называемой разреженными файлами . У Хеннеса есть превосходное объяснение этого в его комментарии к этому вопросу :
источник
Только что узнал сегодня о Windows Alternate Data Streams (ADS). Это скрытая ветка ресурса, которая прикреплена к файлу. Он был частью NTFS начиная с Windows NT 3.1.
Например, если у вас есть пустой текстовый файл, но вы заполняете некоторую сводную информацию в теге свойства файла, создается скрытый файл ADS и прикрепляется к текстовому файлу. Большинство версий Windows не включают размер файла ADS при сообщении о размере исходного файла.
Вы можете создавать и просматривать файлы ADS из командной строки.
echo "ABCDE" > test.txt:hidden.txt
создаст файл test.txt с файлом ADS с именем hidden.txt
Вы можете использовать эту команду для редактирования файла:
notepad test.txt:hidden.txt
Вот легко читаемая статья, которая углубляется в детали.
источник
Я выполнил поиск и наткнулся на похожий вопрос, заданный в переполнении стека.
В основном это говорит о том, что файл создан и занимает несколько байтов или кластер жесткого диска и т. Д. Это зависит от степени детализации жесткого диска и файловой системы и т. Д.
Они обсуждают это здесь: /programming/4954991/are-0-bytes-files-really-0-bytes
с дополнительными ссылками для дальнейшего исследования.
источник
На томе NTFS эта информация хранится в метафайлах. В частности, имя файла и временные метки хранятся в метафайле с именем $ MFT. Метафайлы недоступны обычным методам Windows, таким как Проводник или командная строка.
Для большего чтения:
http://ntfs.com/ntfs-system-files.htm
http://en.wikipedia.org/wiki/NTFS
источник