Короткие имена DOS

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Короткие имена DOS

Сообщение A.A.Z. » 03.08.2005 (Ср) 23:45

Чисто теоретический вопрос. Как в досе обратиться к файлам (папкам) со следующими именами:
Код: Выделить всё
Файл  "1 2 3 4 5 6 7 8.abc"
Файл  "gat бла 71." (точка обязательна)
Папка "! Logins12"
Папка "Рабочий стол" в англоязычной (даже не пан-евро) версии
Файл  "abc.def.ghi.jkl"
Файл  "@@@@@@@@@.@@@"
Спасибо за помощь :)
Пояснение: хочу увидеть нечто типа "abcdef~1.ghi" =)
Нет меня больше

User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Сообщение User2004 » 04.08.2005 (Чт) 0:51

Если DOS допускает пробелы в имени (я не помню :oops: ),то
"1 2 3 ~1.ABC"
"GAT ïæ~1."
"! LOGI~1\"
"ìêdÂç╬~1\"(это просто пример)
"ABC.DEF"
"@@@@@@~1.@@@"
По крайней мере я так думаю. :roll:
А ещё проще- создай в Виндозе такие файлы и найди их NC (Norton Commander-ом). :D
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.08.2005 (Чт) 5:35

В каком смысле обратиться в досе? :) Чем и откуда?
И про GetShortPathName знаешь? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 04.08.2005 (Чт) 12:24

Еще есть команда "dir /x".

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 05.08.2005 (Пт) 0:40

2 GSerg: Эм-м-м-м... Нет :)
Нет меня больше

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 05.08.2005 (Пт) 1:02

Вот что мне выдал GetShortPathName:
Код: Выделить всё
c:\123456~1.ABC
c:\GTAБЛА~1
c:\!LOGIN~1
c:\РАБОЧИ~1
c:\ABCDEF~1.JKL
c:\@@@@@@~1.@@@
Но это немного не то. Я ожидал увидеть вместо, скажем, "РАБОЧИ~1" - цифры, как это делает, например, Paradox 5 (под Win3) :roll: Он сказал, например, что "C:\Documents And Settings\AAZ\Рабочий стол" = "C:\DOCUME~1\AAZ\0016~1" :roll:
Нет меня больше

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.08.2005 (Пт) 4:05

Ну это его проблемы...
GetShortPathName возвращает правильное досовское имя, с учётом того, что может быть и ~2, и ~3... А как это всё интерпретирует отдельно взятая программа - другой вопрос :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 05.08.2005 (Пт) 8:26

Ага, я тоже очень удивился, увидев, какие досовские имена у моих документов с русскими названиями...

Подозреваю, что это может быть связано с файловой и/или операционной системой.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.08.2005 (Пт) 8:38

A.A.Z., советую все же использовать API, чтобы узнать короткое имя. Иначе можно здорово обломаться если, к примеру, в NTFS пользователь отключит генерацию коротких имен. Кроме того, в NTFS и FAT32 длинные имена генерируются по разным алгоритмам, это хорошо видно на именах, в которых присутствуют русские буквы.

P.S. Кстати, ты это учитывал?
Windows NT/2000: In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to nearly 32,000 wide characters, call the Unicode version of the function and prepend "\\?\" to the path.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 83

    TopList