1

Я понимаю, что есть ок. 64K возможных файлов в папке FAT32. Это предполагает 8.3 имен файлов. Длинные имена файлов занимают несколько слотов. Поэтому трудно узнать, сколько фактических записей каталога используется.

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

1 ответ1

1

Я не знаю ни одного инструмента, который позволял бы вам подсчитывать количество "слотов" каталога каталога, используемых или доступных в папке FAT32. У хорошего джентльмена по имени Уди Коэн есть утилита C++ для сортировки имен файлов в fat32, и вы сможете определить класс, который позволит вам перечислять или получать количество этих записей

Ограничение устанавливается файловой системой. FAT32 может иметь 65 536 записей. Каждый файл и подкаталог занимает от двух до тринадцати записей, в зависимости от длины его имени.

Спецификация FAT32 доступна здесь: http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx

Он дает подробную информацию обо всем, включая структуру каталогов и способ хранения длинных имен файлов (LFN) в каталогах.

По сути, есть одна запись каталога, которая всегда содержит краткую (8.3) версию имени файла. Если фактическое имя не соответствует этой форме, то будет от одной до двенадцати записей, каждая из которых содержит 13 байтов полного имени. Таким образом, файл с именем «Veryverylongname.txt» будет содержать три записи. Первый будет иметь короткое имя, что-то вроде «veryve ~ 1.txt», второй будет иметь "veryverylongn", а третий будет иметь «ame.txt».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .