GetUserDir

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

GetUserDir

Сообщение hinst »

Подскажите мне пожалуйста, как получить путь к папке пользователя "Мои документы" кроссплатформенно. GetUserDir возвращает под виндой немнго не то :roll:
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

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

SysUtils.GetEnvironmentVariable('MyDocuments')

Вроде так можно
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

Только что проверял - не работает вообще. Под виндой возвращает '' пустую строку
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

В переменных среды параметра "MyDocuments" нет, но данный параметр прописан в реестре системы. Значит отстается вариант брать данный путь из реестра системы

Добавлено спустя 15 минут 21 секунду:
И под линуксом данная папка не создается автоматически
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

Padre_Mortius: может быть ещё скажете мне по секрету, в какой ветке??
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Не нужно этот путь брать из реестра, для получения путей к таким папкам предназначена функция ShGetFolderPath.
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

ShGetFolderPath это только для windows??
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

2 Sergei I. Gorelkin
Спасибо. Буду знать

2 hinst

Да. Это функция из библиотеки shFolder.dll
Ответить