Странные записи каталога в файловой системе FAT - PullRequest
4 голосов
/ 16 ноября 2011

Итак, я пытаюсь понять, как работает FAT FS, и запутался в таблице корневых каталогов. У меня есть два файла в разделе: test.txt и innit.eh, что приводит к следующей таблице:

Root directory table

Записи, начинающиеся с 0xE5, удаляются, поэтому я предполагаю, что они были созданы из-за переименования. Записи для фактических файлов выглядят так:

TEST   TXT *snip*
INNIT  EH  *snip*

Что я не понимаю, так это где записи типа

At.e.s.t......t.x.t
Ai.n.n.i.t.....e.h.

откуда и для чего они. Они не начинаются с 0xE5, поэтому должны рассматриваться как существующие файлы.

Кстати, я использую Debian Linux для создания файловых систем и файлов, но я заметил похожее поведение на ФС и файлах, созданных в Windows.

Ответы [ 2 ]

3 голосов
/ 16 ноября 2011

ASCII-части имени (где буквы были близки друг к другу) - это устаревшее короткое имя DOS 8.3. Вы видите, что он использует только заглавные буквы. В DOS только они были бы там.

Более длинные части (с 0x00 между ними) - это длинное имя (показано в Windows), которое является Unicode и использует 16 бит на символ.

1 голос
/ 16 ноября 2011

Все промежуточные байты 0x00, что дает сильное ощущение, что они хранятся в UTF-16 вместо UTF-8 . Возможно, они существуют как расширение, подобное другим расширениям VFAT для длинных имен файлов?

...