![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Shuricksoft |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 27.3.2002 Где: Odessa, Ukraine |
Собственно, сабж. Хотелось бы написать прогу под ДОС, которая бы видела длинные имена файлов. Насколько это реально? Где можно почитать о длинных именах?
|
|||
|
||||
Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia |
В пакете DOS, есть утилита copy32.exe, но это для копирования.
-------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва |
Давай немного разберемся. Уже под Win95 отдельно ДОСа нет - он теперь часть виндов. И он абсолютно корректно работает с длинными именами файлов.
Можешь начинать писать обычное консольное приложение ![]() |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Shuricksoft |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 27.3.2002 Где: Odessa, Ukraine |
Мне не копировать надо, а просто интересует тема.
Я имел в виду именно ДОС. Например, 6.22.
Позволь с тобой не согласиться. Корректно он работает только под Виндоусом в ДОСовском окошке. А вот в "режиме эмуляции" - нифига. To Chingachguk: Спасибо за описание и код! Только вот беда: он тоже не канает под ДОСом и в режиме эмуляции. Ещё какие-нибудь предложения? Кто-нибудь знает, как эти имена туда физически записываются? |
||||||
|
|||||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
Где-то я читал про это... То ли в Пирогове, то ли в Зубкове (более вероятно). Длинные имена в винде - это же надстройка (над фатом ?). В каком-то там описателе файла в этой ФАТ валяется признак, что имя - расширенное. Вроде бы этот признак - символ "~" или чего-то вроде того в конце обычного имени. Если винда натыкается на него (на признак), то ломится куда-то в свою дополнительную область данных и читает все остальное... -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
Да и инфы много. Называется это VFAT:
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Shuricksoft |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 27.3.2002 Где: Odessa, Ukraine |
Сенкс. Только непонятно: так можно ли из чистого ДОСа получить доступ к этомк самому "специальному каталогу" (то есть, прочитать длинные имена)? Если да, то как?
|
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. |
То что это сделать можно - это 100%, и это даже ОЧЕНЬ легко, но повозится придется.
Длинные имена хранятся там же где и короткие, т.е. в каталоге, как обычные короткие имена, только с одним отличием - у них поставлены атрибуты sys+hid+readonly+volume, вроде. Флаг volume делает эти записи каталога бессмысленными. Поэтому dos такие записи пропускает. Каждому короткому имени может соответствовать несколько записей длинного имени. например, длинное имя = abcdefghijklmnopqrstuvxyz. Тогда в каталоге будут записи с такими именами: .n.o.p.q.r....s. t.u.v.x.y...z... .a.b.c.d.e....f. g.h.i.j.k...l.m. ABCDEF~1 .... ................ Длинные имена хранятся в виде WideString (символ = 2 байта). Как написал Chingachquk, для поддержания целостности введены порядковый номер и контрольная сумма (считается от короткого имени). Блин, ну тут много можно написать, но лучше будет если ты скачаешь кульную прогу WinHex www.winhex.com В ней ты можешь посмотреть кишки винта, прога работает напрямую с диском. Открой в ней какой-нибудь каталог и ты все поймешь. Ну и потом останется тебе только написать прогу под дос с использованием int 13 или int 25. Ну это уже другая тема... -------------------- С уважением, г-н Посол. |
|||
|
||||
kruchinin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.4.2003 |
Я сколько ни пробовал - ни одна программа не позволяет это делать под DOS.
Старые WinRar позволяют архивировать для DOSа длинные имена файлов. Они даже видятся при просмотре, но при разархивации получаются урезанные до 8 символов. Так я думаю стандартными функциями ДОС ты этого не добьешься, тебе надо лезть в FAT, и я думаю , что игра не стоит свеч |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. |
Да, чтобы прочитать каталог, придется последовательно узнавать номера кластеров каталога из FAT.
Только в этом ничего страшного нет. -------------------- С уважением, г-н Посол. |
|||
|
||||
![]() ![]() ![]() |
Правила раздела «Флейм» | |
|
Добро пожаловать в «Флейм». В разделе не действуют многие правила:
Строго запрещено:
Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт. Глас Винграда:
Глас Философии:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Флейм | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |