ExpandFileName(BaseDir, RelativePath)...

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

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

Ответить
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

ExpandFileName(BaseDir, RelativePath)...

Сообщение shade »

Задача такая:
Заданы полный путь BaseDir к каталогу и относительный или полный путь к файлу. Нужно получить полный путь к файлу: если второй путь полный, то вернуть его как результат, если относительный преобразовать его в полный относительно каталога BaseDir.

Есть ли какая-нибудь функция (в RTL/FCL/LCL) решающая данную проблему?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

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

Можно использовать ф-ции из модуля packages/base/netdb/uriparser.pp: FilenameToURI() -> ResolveRelativeURI() -> URIToFileName(). Собственно, первая и последняя ф-ции нужны только для виндовых путей (линуксовые пути сами по себе являются URI). Это все, конечно, несколько избыточно... зато отлажено до полного соответствия RFC3896.
Ответить