Страница 1 из 1

Про длинный и короткий

Добавлено: 18 Март 2025, 12:28
Игорь Столяров
Все привет !

Подскажите пожалуйста, это у меня какой-то супер компьютер или общая беда ?
Незамысловатый код:

Код: Выделить всё

  Loc:RPath = 'D:\Users\Новая папка\AppData\Local\Temp\'
  Message(LongPath(Loc:RPath) & '|' & ShortPath(Loc:RPath))
Результат:
1.jpg

Почему нет разницы ? :(
Можно ли как-то принудительно через WinAPI упаковать путь в формат DOS 8.3 ?
Спасибо !

Про длинный и короткий

Добавлено: 18 Март 2025, 14:45
SergioRaguzini
Игорь Столяров писал(а): 18 Март 2025, 12:28 ...или общая беда ?....
Общая. Это ошибка тянется еще со старых версий Clarion, в С6.3 тоже так...

Про длинный и короткий

Добавлено: 18 Март 2025, 14:55
Игорь Столяров
SergioRaguzini писал(а): 18 Март 2025, 14:45 в С6.3 тоже так
Спасибо, понял.
Кстати, с функцией WinAPI GetShortPathNameA() те же яйца, только в профиль. :(
Ладно. Настоящие герои всегда идут в обход ... :shock:

Про длинный и короткий

Добавлено: 18 Март 2025, 15:42
Дед Пахом
Короткие имена могут быть просто отключены.

Про длинный и короткий

Добавлено: 19 Март 2025, 7:41
Игорь Столяров
Дед Пахом писал(а): 18 Март 2025, 15:42 Короткие имена могут быть просто отключены.
Наверно так и есть ... потому, что я сейчас смотрю свой код 2005 г. и там ShortPath() используется.
Я не стал бы спорить на ящик пива, но по здравой логике, видимо в то время ShortPath() работала ... :D

Про длинный и короткий

Добавлено: 19 Март 2025, 12:09
Дед Пахом
Она и сейчас работает как и работала, то есть возвращает алиас имени файла (короткое имя). Если короткие имена отключены, то в алиасе длинное имя. Короче, она на лету не преобразует строку-имя файла в вид 8.3, а вытаскивает из файловой системы.
Если файл не существует (d:\xyz\Длинное имя несуществующего файла), то преобразует и вернёт 8.3 (но это не точно, надо проверять).

Про длинный и короткий

Добавлено: 19 Март 2025, 12:32
Игорь Столяров
Дед Пахом писал(а): 19 Март 2025, 12:09 Если короткие имена отключены
У меня в том коде есть записи, что я его тестирую под Windows7, а работать он будет под Windows 2003 Server.
Видимо тогда короткие имена файлов по умолчанию были включены. На HDD Win7 скорее всего был FAT32 ...