Чем Кроссплатформенно заменить выявление системных путей ???

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

Чем Кроссплатформенно заменить выявление системных путей ???

Сообщение vitaly_l » 20.03.2012 17:26:35

В windows использую: SHGetSpecialFolderPath - это нужно для определения системных директорий и ещё реестр.
Кроссплатформенно - это нельзя...

Чем Кроссплатформенно заменить (выявление системных путей) ???
В windows я использую ProgramFiles и AppData(users)...

Задача такая:
1) в ProgramFiles - лежит программа.
2) в AppData(users) - лежат файлы пользователей. Можно ли их класть в GetAppConfigDir??? или в других системах есть аналог AppData(users) ???

Нужно аналоги |ProgramFiles и Users| Есть ли кросплатформенные функции?

Заранее благодарен за ответы.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение Ism » 20.03.2012 19:19:56

GetCurrentDir - текущая директория
GetUserDir - папка пользователя

Program files не нужно, достаточно GetCurrentDir
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение vitaly_l » 20.03.2012 19:43:08

GetCurrentDir... не подходит... (но как вариант СПАСИБО).
програма в расчёте на пользователей, которые вообще не понимают, что такое диск...

GetUserDir - возвращает, то что нужно(спасибо)... Вот только я не знаю, что это будет значить в других системах(не windows)???
Например, указание: Path := GetUserDir + '\MyDirectoryName'; - будет ли корректно в МАС и Линукс,
если я туда запишу рабочую программу??? И как её увидят другие пользователи??? Соответственно нужен путь наподобии ProgramFiles...

Если я неправ - прошу скорректировать... (я никогда не видел линукс - скачиваю посмотреть...)
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение alexs » 20.03.2012 20:09:08

vitaly_l
Не испольуй разделитель каталогов.
Есть константа PathDelemiter - она для каждой ОС корректна.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение vitaly_l » 20.03.2012 20:15:26

alexs писал(а):PathDelemiter

Большое человеческое: СПАСИБО! - добрый alexs.

нужна "уникальная" функция возвращающая, во всех системах: путь - наподобии ProgramFiles...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение alexs » 21.03.2012 00:34:44

А в чём дело?
В винде - PF\Имя твоей программы
в линухах USR/BIN и USR/Имя твоей программы
А вообще - ExtractFilePath(ParamStr(0)) - и ты знаешь, откуда твоя программа запущена.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение vitaly_l » 21.03.2012 01:42:41

Дело в простом, я кроме windows: других систем - не видел...
Всё что мне нужно - это проинсталлировать файлы в ХХХ директорию и сделать ярлык для запуска(я так думаю)...
остальное должно работать, благодаря Лазарус, (я так думаю) или я ложно понимаю понятие: кроссплатформенное приложение...

Поэтому и спрашиваю универсальную функцию, которая вернёт путь, не только для Linux, но и для MAC:
:?: Должна быть такая функция(я так думаю)... Иначе как инсталляторы определяют куда и что???
В общем я запутался, сейчас установил ubuntu и скачиваю для неё лазарус... завтра всё прояснится (для меня)...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение WAYFARER » 21.03.2012 11:52:10

vitaly_l писал(а):Поэтому и спрашиваю универсальную функцию, которая вернёт путь, не только для Linux, но и для MAC:
Должна быть такая функция(я так думаю)... Иначе как инсталляторы определяют куда и что???

В каждой операционной системе используется своя система управления пакетами для установки ПО. Существуют свои стандарты.
Для начала почитайте о структуре каталогов Linux
http://itshaman.ru/articles/10/directory-linux

PS. В линукс вам нужно определить лишь папку пользователя(переменная $HOME), все остальные пути - абсолютные и неизменные
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 517
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение vitaly_l » 21.03.2012 18:56:46

Узнал что в линуксе, exe запускается только под WINE,
Насколько я понимаю WINE - это эмуляция windows? -
значит архитектуру windows(для инсталлятора), можно сохранить???
Так ли это, может ли линукс проинсталировать у себя приложение для windows и запустить???
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение WAYFARER » 21.03.2012 19:47:20

vitaly_l писал(а):Насколько я понимаю WINE - это эмуляция windows? -

Wine есть реализация WinAPI для *nix
vitaly_l писал(а):Так ли это, может ли линукс проинсталировать у себя приложение для windows и запустить???

Может. Но это приведет к тому что вашей программой никто не будет пользоваться.
У вас есть кроссплатформенный инструмент - Lazarus, что мешает собрать бинарник для Linux?
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 517
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение vitaly_l » 21.03.2012 22:26:18

WAYFARER писал(а):У вас есть кроссплатформенный инструмент - Lazarus, что мешает собрать бинарник для Linux?

Что мешает, что мешает...
Я никогда не видел линукс...
Но это легко исправить...
Сегодня, установил линукс... (всё кроме web и половины Русского языка - работает...)
Там в линуксе - всё иначе...
Сложнее всего отключить моторику нажатия правой кнопки мышки...
Попытался установить лазарус …...
И осознал, что именно хотел сказать, Крылов когда писал басню: "Мартышка и очки"...

Я его распаковал в директорию home/// он запускается и даже открывает мой проект, но требует fpc...
Короче, Лазарус мне установить не удалось, Я ему указываю путь к fpc, а он говорит, что там должна быть rtl
и исполняемые файлы, а в архиве только одна директория bin\lib\fpc... но лазарус её не признаёт...

А мой экзешник созданный в windows: линукс - за программу вообще не считает...
Линукс для меня - совсем чужая система... :(
обидно до слёз... :( :oops: :cry:

Что Вы называете бинарником??,
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение kosteek » 21.03.2012 23:14:47

vitaly_l писал(а):Я ему указываю путь к fpc, а он говорит, что там должна быть rtl

Нужно доустановить пакет fpc-source
Если у тебя ubuntu то в терминале набери
Код: Выделить всё
sudo apt-get install fpc-source
Последний раз редактировалось kosteek 21.03.2012 23:23:22, всего редактировалось 1 раз.
kosteek
постоялец
 
Сообщения: 203
Зарегистрирован: 24.07.2008 14:57:09
Откуда: Украина, г.Славянск

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение WAYFARER » 21.03.2012 23:14:57

vitaly_l писал(а):Сегодня, установил линукс... (всё кроме web и половины Русского языка - работает...)

Следует доустановить пакеты локализации
Какой дистрибутив стоит?
vitaly_l писал(а):Попытался установить лазарус …...

Попробуйте установить из репозитария
vitaly_l писал(а):А мой экзешник созданный в windows: линукс - за программу вообще не считает...

и не должен))
vitaly_l писал(а):Что Вы называете бинарником??,

В данном случае исполняемый файл, программу

vitaly_l писал(а):Линукс для меня - совсем чужая система...
обидно до слёз...


Освоитесь, ничего сложного.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 517
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение vitaly_l » 21.03.2012 23:42:30

WAYFARER писал(а):всё кроме web и половины Русского языка - работает..

Я ему всё прописал, но он инет - не видит...
нет инета - нет репозитория (книгу про линукс прочитал)...

WAYFARER писал(а):Освоитесь, ничего сложного.

Да, там нет ничего сложного, он мне даже понравился, там есть программы, которые я люблю...
и организация очень простая и доступная... самое забавное, он планшет сам определил... windows7 - этого не умеет...
Вот только, инет не хочет подключить всё вроде ему указал, а он никак...

fpc можно скачать в виде архива и разархивировать в home???
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Чем Кроссплатформенно заменить выявление системных путей

Сообщение kosteek » 21.03.2012 23:48:25

vitaly_l какую вы операционную систему linux поставили?
kosteek
постоялец
 
Сообщения: 203
Зарегистрирован: 24.07.2008 14:57:09
Откуда: Украина, г.Славянск

След.

Вернуться в Файловая система

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru