Здравствуйте.
Понадобилось прочесть свойство ярлыка компонентом "ShortCut" и как оказалось источник с файлом в свойстве "RFileName" читается с короткими именеми, хотя рабочую директорию в "RWorkingDirectory" читает нормально.
RFileName
C:\New folder\Новый текстовый документ.txt
C:\NEWFOL~1\700C~1.TXT
RWorkingDirectory
C:\New folder
Кто-то сталкивался и может можно как-то иначе прочесть в свойствах ярлыка, полный путь к файлу?
Добавлю: HiAsm 4.04, Win7 x86
Редактировалось 1 раз(а), последний 2017-05-14 06:49:42
Этот топик читают: Гость
Ответов: 64
Рейтинг: 15
|
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
sintet писал(а): RFileName
C:\New folder\Новый текстовый документ.txt C:\NEWFOL~1\700C~1.TXT Так и должно быть. Короткое имя не должно превышать 8 символов. |
|||
карма: 22 |
|
Ответов: 64
Рейтинг: 15
|
|||
nesco писал(а): Так и должно быть. Короткое имя не должно превышать 8 символов.Понятно, хотя не восьми, а 8 + 3 символа через точку, расширение файла. 8.3 формат записи имени файла со времён MS-DOS. Как же получить полное имя файла? Редактировалось 2 раз(а), последний 2017-05-14 11:32:40 |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
sintet писал(а): Как же получить полное имя файла?Так как методы ссылки используют интерфейс Винды, а он не предусматривает использование длинных имен (ХЗ почему), то получение полного пути становится весьма нетривиальной задачей, тк нет API прямого преобразования короткого имени в длинное. |
|||
карма: 22 |
|
Ответов: 64
Рейтинг: 15
|
|||
Кстати если открывать ярлыки в hex редакторе или текстовом редакторе, в нём можно увидеть полный путь к файлу. Остаётся понять как его правильно находить в HiAsm.
|
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Решение нетривиальной задачи -- получение полного имени по короткому имени
Схема
Редактировалось 1 раз(а), последний 2017-05-14 18:11:33 |
|||
карма: 22 |
| ||
Голосовали: | sintet |
Ответов: 64
Рейтинг: 15
|
|||
nesco, круто спасибо.
Другое решение нетривиальной задачи
Редактировалось 2 раз(а), последний 2017-05-14 18:39:28 |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
sintet писал(а): спасибоДобавлен новый метод FileLong в компонент FilePartElm. Обновись с SVN и можешь использовать без всяких IC и извратов. Там используется (как оказалось после детального поиска) штатная API-функция Винды -- GetLongPathName |
|||
карма: 22 |
| ||
Голосовали: | sintet |
8