![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
DIMEDROLL |
![]()
Сообщение
#1
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
что то под вечер немогу смекнуть.. хочу получить фолдер, куда установленны и устанавливаются по дефолту программы, например на виндоуз:
"C:/Program Files/" "C:/Program Files(x86)/" на маке(насколько помню) ":my_hd/Applications" ну и на линухе.... как его правильнее и кросплатформеннее написать?) |
|
|
Rocky |
![]()
Сообщение
#2
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Возможно QString QDir::rootPath() поможет... Ну а дальше в зависимости от ОС (либо "Program Files", либо... хм, под маком не работал, не знаю... ) Ну а на линухе имхо итак все ясно.. root есть root. В смысе "/". Ну rootPath() и возвращает "/". А дальше наверное лучше ставить куда традиционно пользовательские программы ставятся... /usr/bin, /usr/local/bin, /usr/lib, /usr/local/lib
Во, есть еще QDir::searchPaths(). Надо посмотреть, если она возвращает $PATH, то это вроде то что нужно Сообщение отредактировал Rocky - 26.2.2010, 23:58 |
|
|
SABROG |
![]()
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Я вижу только одну причину знать путь куда ставятся программы - собственный installer программ. Qt больше ориентирована на пользователей ОС без прав администратора. Поэтому $HOMEDIR и сохраняй файлы и настройки, которые нужны программе. А право ставить программы для всех пользователей компьютера оставь сисадмину.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Ну а на линухе имхо итак все ясно. Да вот как раз на линухе минимум ясности.В Линухе, в отличие от BSD/UNIX, стандарт рекомендует ставить программы в /opt, а /user - рудимент оставшийся от BSD/UNIX. Однако многие по прежнему ставят свои программы в стиле BSD/UNIX, т.е.: /usr/bin/MyApp - двоичные файлы программы /usr/share/doc/MyApp - документация программы /var/MyApp - изменяющиеся данные программы. А насчёт Program Files на виндовозе не очень понятно, зачем к нему путь? В инсталяторе пользователь сам может выбрать куда ставить. |
|
|
kwisp |
![]()
Сообщение
#5
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
DIMEDROLL |
![]()
Сообщение
#6
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
уже не удивляюсь, когда на форумах на вопрос:
"как сделать "это"?" отвечают: "а зачем? делай вот так и так и не парься!" а если хватит ума еще и ответ дать "зачем тебе это нужно", то флейма на 20 страниц не избежать, где каждый посчитает нужным указать тебе на то, что ты все делаешь не правильно ![]() я нашел обходной путь, но вопрос остается открытым |
|
|
panter_dsd |
![]()
Сообщение
#7
|
![]() Жаждущий знаний ![]() ![]() ![]() Группа: Участник Сообщений: 254 Регистрация: 1.1.2009 Из: Санкт-Петербург Пользователь №: 474 Спасибо сказали: 32 раз(а) Репутация: ![]() ![]() ![]() |
Use WinAPI.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
но вопрос остается открытым Да тут только дефайнами всё оборачивать, т.е. под каждую платформу нужно своё писать.смотря какой дистрибутив собственно я об этом. Говоря "Линукс" понимай, как "Несчитанное множество *nix-подобных ОСек".в gentoo к примеру всё ясно. Для виндовоза, можешь воспользоватся переменной окружения ProgramFiles Например, следующий код: Напечатает в консоль:
|
|
|
Kagami |
![]()
Сообщение
#9
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Как сложно
![]()
|
|
|
SABROG |
![]()
Сообщение
#10
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Как сложно ![]()
Так нельзя делать, хотя бы по этой причине: Цитата Еще одной проблемой является способ работы Windows 7 с 32-битными приложениями. Windows 7 [в 64-разрядной редакции] сохраняет 32-разрядные приложения по другому пути - в папку Program Files (x86), а 64-разрядные сохраняются в привычную Program Files. Это приводит к возникновению определенных проблем при поиске некоторых приложений, пишет Убри.
"Приложения, в которые жестко зашита папка 'Program Files', не могут корректно работать, будучи установленными в папку Program Files (x86)" - объяснил он. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 19.1.2025, 4:12 |