Здравствуйте.
Понадобилось прочесть свойство ярлыка компонентом "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 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
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 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
sintet писал(а): Как же получить полное имя файла?Так как методы ссылки используют интерфейс Винды, а он не предусматривает использование длинных имен (ХЗ почему), то получение полного пути становится весьма нетривиальной задачей, тк нет API прямого преобразования короткого имени в длинное. |
|||
| карма: 22 |
|
|
Ответов: 64
Рейтинг: 15
|
|||
|
Кстати если открывать ярлыки в hex редакторе или текстовом редакторе, в нём можно увидеть полный путь к файлу. Остаётся понять как его правильно находить в HiAsm.
|
|||
| карма: 0 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
Решение нетривиальной задачи -- получение полного имени по короткому имени
Редактировалось 1 раз(а), последний 2017-05-14 18:11:33 |
|||
| карма: 22 |
| ||
| Голосовали: | sintet |
|
Ответов: 64
Рейтинг: 15
|
|||
|
nesco, круто спасибо.
Редактировалось 2 раз(а), последний 2017-05-14 18:39:28 |
|||
| карма: 0 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
sintet писал(а): спасибоДобавлен новый метод FileLong в компонент FilePartElm. Обновись с SVN и можешь использовать без всяких IC и извратов. Там используется (как оказалось после детального поиска) штатная API-функция Винды -- GetLongPathName |
|||
| карма: 22 |
| ||
| Голосовали: | sintet |
8



Поиск
Друзья
Администрация