Russian Qt Forum

Qt => Общие вопросы => Тема начата: cya-st от Январь 05, 2011, 16:31



Название: Относительный путь
Отправлено: cya-st от Январь 05, 2011, 16:31
Всем привет.
Подскажите пожалуйста как в Qt можно вернуть относительный путь (например %APPDATA%) для винды


Название: Re: Относительный путь
Отправлено: asrael от Январь 05, 2011, 17:14
вроде есть такая функция app.applicationDirPath().
Код:
QApplication app(argc, argv);
...
qDebug()<<app.applicationDirPath();
если я правильно понял вопрос..  ???


Название: Re: Относительный путь
Отправлено: cya-st от Январь 05, 2011, 17:38
вроде есть такая функция app.applicationDirPath().
Код:
QApplication app(argc, argv);
...
qDebug()<<app.applicationDirPath();
если я правильно понял вопрос..  ???
Эта функция возвращает директорию откуда был запущен екзешник.
У меня %APPDATA% это C:\Users\usr\AppData\Roaming\


Название: Re: Относительный путь
Отправлено: asrael от Январь 05, 2011, 18:00
тогда так:
Цитировать
Код:
// obtain (platform specific) application's data/settings directory
QSettings ini(QSettings::IniFormat, QSettings::UserScope,
              QCoreApplication::organizationName(),
              QCoreApplication::applicationName());
QString dir = QFileInfo(ini.fileName()).absolutePath();
dir string will contain:
on Windows - "%APPDATA%\<Organization Name>" ("<Drive>:\Documents and Settings\<login>\<Application Data>\<Organization Name>")
on Unix and Mac OS X - "$HOME/.config/<Organization Name>"
where <text> depends on your application & workspace (organization name, lingual version of Windows, etc.). This is a good place to put your data/settings without using QSettings.


Название: Re: Относительный путь
Отправлено: cya-st от Январь 05, 2011, 18:25
Да так работает. Всем спасибо.


Название: Re: Относительный путь
Отправлено: lit-uriy от Январь 05, 2011, 21:19
в обще разыменовать системные переменные можно несколькими способами:
QStringList QProcess::systemEnvironment ()   [static]

Новый класс (4.6.х)
QProcessEnvironment QProcessEnvironment::systemEnvironment ()   [static]
QString QProcessEnvironment::value ( const QString & name, const QString & defaultValue = QString() ) const

Ну и классика:
Код
C
#include <iostream>
#include <cstdlib>
int main()
{
   cout<<getenv("APPDATA");  
}