Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > FAT directory entry |
Автор: rudolfninja 10.8.2016, 21:33 |
Приветствую всех. Начну сразу с проблемы: есть виртуальная файловая система FAT (реализация файловой системы FAT на C). Реализована непонятно кем и когда, но очень похоже, что взята http://en.pudn.com/downloads36/sourcecode/windows/system/detail114631_en.html. Проблема заключается в том, что при копировании в эту виртуальную ФС папки с названием, например, GO 9210 GO копируется папка с названием GO 9210, а если копировать папку GO TEST GO или GO 92101GO, то все окей, копируется папка с нужным названием. Обязательное условие, что в папке должен быть хотя бы один файл. После долгой отладки я пришел к тому, что имя проблемной папки не получается привести к LongFilename. Так же выяснил, что байт аттрибута FAT directory entry не равен 0x0F (поэтому и не получается). Если верить https://en.wikipedia.org/wiki/8.3_filename#Directory_table, то этот байт говорит о том, что данная директория содержит long filename. Собственно два вопроса: 1) Может есть у кого готовое решение (в виде кода), которое позволит получить аттрибуты директории, описанные на википедии? 2) Если кто-нибудь хорошо понимает организацию FAT, объясните, пожалуйста, почему так происходит (вдруг это нормально)? Возможно где-то как-то нарушено соглашение об именах директорий или еще что... Спасибо. |
Автор: rudolfninja 11.8.2016, 12:03 |
Короче, пришел к тому, что вероятнее всего проблема в этой реализации FAT, т.к. на флешке в FAT я могу создать такую папку и закинуть туда файл |