Як метадані файлу зберігаються у Windows?


13

(Я використовую Windows XP, але, мабуть, він подібний у всіх останніх версіях Windows.)

Створюючи, наприклад, новий порожній текстовий документ, ви знайдете в його властивостях, що він має розмір 0 байт. Нульові байти означає відсутність інформації . Немає даних.
Але все-таки файл має якесь ім'я, він все ще може містити дати останнього доступу, модифікації та створення. Він несе інформацію, чи це прихований файл чи ні, чи він доступний лише для читання чи ні ...

То де зберігаються всі метадані?


тут немає ніякої магії. Читайте відповіді на ці питання тут: stackoverflow.com/questions/4954991 / ...
HighTechGeek

Давно я пам’ятаю, що раніше у мене був вид вірусу, який якимось чином пошкодив пару файлів на моєму ПК, так що вони виглядали розміром близько 100 ГБ. Кожен з них. На моєму 40 Гб жорсткому диску. Тож, мабуть, була якась магія ... :-D
Jeyekomon

Відповіді:


11

Вас вчили, що жорсткі диски містять файли, але це не вся правда. Насправді жорсткі диски містять одне дуже-дуже велике число, виражене безліччю одиничних біт. Але ця інтерпретація не має сенсу ні для вас, ні для вашого комп’ютера, тому що обробка одиничних великих чисел не є дуже поширеною (і я кажу про НАДАЛЬНО ВЕЛИЧЕЗНІ числа). Натомість комп'ютер розбиває його на менші «слова» (8-розрядні, 16-бітні, 32-бітні чи будь-які інші) і використовує подібне. Але це лише купа слів (припустимо, 8-бітові слова, тобто байти).

Тепер цей привід розділений. Я пояснив, чому розділення є гарною ідеєю в цій відповіді :

Взагалі кажучи, диски можна використовувати без перегородки. Більшість мандрівників працює так. Але використання розділів має багато переваг, просто назвіть деякі з них:

  • Ви можете мати два ОС, що сидять на одному жорсткому диску і не заважають один одному. Кожен з них буде сприймати свій розділ як логічний привід і не возиться з іншими, якщо ви цього не скажете.
  • Ви можете логічно розділити свої дані. Якщо одна секція з якихось причин пошкодиться, інші розділи, ймовірно, залишаться цілими.
  • Використовувати розділи краще, ніж використовувати декілька менших жорстких дисків, оскільки ваша система тихіша, витрачає менше енергії, і ви можете змінювати розмір, видаляти, переміщувати їх і т.д.
  • Для деяких спеціальних цілей ви можете використовувати деякі частини жорсткого диска.

Тепер у кожного розділу є своя файлова система. У сучасних версіях Windows використовується NTFS , але FAT , FAT32 та exFAT підтримуються для зовнішніх медіа або застарілих розділів. Щоденні установки Linux зазвичай використовують файлові системи ext , найновіша - ext4 .

Файлова система визначає спосіб фізичного розміщення файлів на диску. Ви можете подумати про це так: якби у вас була книга на 10000 сторінок без глав, номерів сторінок або розривів рядків, це було б дуже важко використовувати. Звичайно, номери сторінок та заголовки глав займають певний простір на сторінці, але вони роблять використання книги набагато простішим та швидшим. Якщо ви хочете перейти до розділу, скажімо, 42, ви просто подивіться це в зміст. Потім ви перегортаєте книгу, поки не знайдете потрібну главу. Ваші файли - це розділи, а ваша файлова система - книга. Метадані файлової системи, такі як межі файлів, назви файлів тощо, також займають місце, але це порівняно невеликий простір, і це робить роботу набагато швидшою.

Якщо ваша "глава" порожня, вона все ще може мати заголовок або номер сторінки, правда? Порожній файл містить нульові байти даних. Метадані займають місце, але це не частина файлу, а файлова система. Інакше ви побачите назви файлів всередині своїх текстових файлів?

До речі, саме тому ранні версії DOS приймали лише 8,3 імені - місце, відведене для назви файлів, було дуже обмеженим. NTFS дозволяє назви файлів довжиною 255 символів [1] .


Ще одне слово на ваш коментар:

У мене був такий собі вірус, який якимось чином пошкодив пару файлів на моєму ПК, так що вони виглядали розміром близько 100 ГБ. Кожен з них. На моєму 40 Гб жорсткому диску. Так що, мабуть, була якась магія ... :-D

Завдяки функції під назвою рідкісні файли цілком можливо мати дійсні файли більше вашого жорсткого диска . Хеннес чудово пояснює це у своєму коментарі до цього питання :

Уявіть, що палітурка вміщує 100 сторінок. Якщо ви використовуєте це палітурне сполучення як звичайний файл, ви можете вставити 100 сторінок. Ви могли прочитати всі 100. Ви можете написати всім 100. Тепер уявіть собі рідкісні палітурки. Ви вставляєте першу сторінку, яку ви пишете "сторінка 1: Вміст А". Потім ви вставляєте другу сторінку, яку ви пишете "сторінка 9999: зміст b:". Кожен раз, коли ви намагаєтесь прочитати сторінку, ви дивитесь, чи вона існує. Якщо це не так, ваша відповідь буде це порожня сторінка. Якщо він існує, ви повернете вміст сторінки. Щоразу, коли ви пишете на сторінці, яка ще не існує в палітурці, додаєте новий аркуш паперу.


Інакше ви побачите назви файлів всередині своїх текстових файлів? Добре, що багато багатих файлів, наприклад, картинки або PDF-файли, можуть містити багато метаданих. Навіть прості текстові файли, кодовані UTF-8, містять послідовність EFBBBF, яка прихована більшістю текстових редакторів, тому я очікував, що метадані файлу будуть лише якоюсь іншою прихованою та неприступною частиною файлу. У будь-якому випадку, ви були б чудовим вчителем! Кожна відповідь, яка дана тут, була в чомусь корисною, але найбільше ціную ваші зусилля.
Jeyekomon

Це не відповідає на питання, чи не так? То де зберігаються всі метадані?
Корай Тугай

@KorayTugay Я вважаю, що актуальним було питання "Як метадані файлу зберігаються у Windows, щоб вони не займали місця ". На мій погляд, найкраща відповідь, яку ви можете дати в публікації Super User, - це пояснити, що вони зберігаються у файловій системі, а не безпосередньо у файлі, і саме тому не враховуйте розмір файлу. Вони є в книзі, але не як частина тексту.
gronostaj

7

Щойно дізналися сьогодні про альтернативні потоки даних (ADS) для Windows. Це прихована вилка ресурсу, яка додається до файлу. Він є частиною NTFS з Windows NT 3.1.

Наприклад, якщо у вас є порожній текстовий файл, але ви заповнюєте частину зведеної інформації у тезі властивостей файлу, прихований файл ADS створюється та додається до текстового файлу. Більшість версій Windows не включає розмір файлу ADS при повідомленні про розмір вихідного файлу.

Ви можете створювати та переглядати файли ADS з командного рядка.

echo "ABCDE" > test.txt:hidden.txt

створить файл test.txt з файлом ADS, який називається прихований.txt

Ви можете використовувати цю команду для редагування файлу:

notepad test.txt:hidden.txt

Ось легка для читання стаття, яка детальніше описується.


Це справді цікава річ! Я насправді ніколи про це теж не чув ... Дякую.
Jeyekomon

@Jeyekomon здається, що "type" це не підтримує, pastebin.com/raw/4Ae3GGkN, але я бачу, як роблять ехо та блокнот (перевірено в win7)
барлоп

2

Я здійснив пошук і натрапив на аналогічне запитання щодо Stack Overflow.

В основному це говорить про те, що файл створюється і займає кілька байтів або кластер жорсткого диска і т. Д. Це залежить від деталізації жорсткого диска та файлової системи тощо.

Вони обговорюють це тут: /programming/4954991/are-0-bytes-files-really-0-bytes

з додатковими посиланнями для подальших досліджень.


2

На томі NTFS ця інформація зберігається у метафілах. Зокрема, ім'я файлу та часові позначки зберігаються у метафайлі під назвою $ MFT. Метафіли недоступні звичайними методами Windows, такими як Провідник або командний рядок.

Для більшого читання:

http://ntfs.com/ntfs-system-files.htm

http://en.wikipedia.org/wiki/NTFS


Дякую. Тож відповідь полягає в глибшому розумінні файлової системи мого жорсткого диска ... І просто з цікавості - чи знаєте ви якийсь "ненормальний" метод Windows? Той, який насправді корисний для доступу до цих метафілів?
Кількох

1
@Jeyekomon Вам потрібно скористатися редактором сектору. Ось приклад тут: blogs.technet.com/b/askcore/archive/2013/03/01/…
Девід Маршалл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.