Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить имя глобавльной временной директории, Qt 
:(
    Опции темы
Artemon
Дата 23.7.2011, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 2
Всего: 20



Как в Qt можно получить путь к глобальной временной директории, в Windows это C:\Windows\Temp  ?

Метод QDir::tempPath() - Возврашает временную папку ТЕКУЩЕГО пользователя, а мне нужна именно глобальная.



--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Artemon
Дата 24.7.2011, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 2
Всего: 20



Нашел одно решение, но оно завязано на платформу Windows:

char* ch = getenv("windir");

Можно конечно все вынести в конструкци ивида ifdef WINDOWS /endif, но это не особо красиво.


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
alexvs11
Дата 24.7.2011, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



Цитата(Artemon @  24.7.2011,  14:04 Найти цитируемый пост)
Можно конечно все вынести в конструкци ивида ifdef WINDOWS /endif, но это не особо красиво.

наврятли можно сделать по-другому
PM MAIL   Вверх
volatile
Дата 24.7.2011, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: нет
Всего: 85



Цитата(Artemon @  24.7.2011,  14:04 Найти цитируемый пост)
Нашел одно решение, но оно завязано на платформу Windows:
char* ch = getenv("windir");

Имхо это не глобальная временная папка, а директория где установлена винда.

PM MAIL   Вверх
Artemon
Дата 24.7.2011, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 2
Всего: 20



Цитата(volatile @  24.7.2011,  16:02 Найти цитируемый пост)
Имхо это не глобальная временная папка, а директория где установлена винда.


добавить \temp думаю не проблема


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
volatile
Дата 24.7.2011, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: нет
Всего: 85



Цитата(Artemon @  24.7.2011,  19:11 Найти цитируемый пост)
добавить \temp думаю не проблема 

Cтрого говоря, она может быть и не temp
скорей всего, но не обязательно.

С таким же успехом можно предположить что директория винды это C:\Windows
скорей всего, но не обязательно.

Добавлено через 13 минут и 11 секунд
Например, на моем компе, глобальная (и локальная) временная директория вообще не в папке винды.
она у меня в C:\T
(Делаю так при каждой установке винды, мне так удобно)

Легально получить временную папку можно в winapi (есть спец.функция), или в реестре.

PM MAIL   Вверх
alexvs11
Дата 24.7.2011, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



ну есть же еще переменная окружения %TEMP%, ну и да, winapi
PM MAIL   Вверх
Artemon
Дата 25.7.2011, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 2
Всего: 20



Цитата(volatile @  24.7.2011,  19:28 Найти цитируемый пост)
Cтрого говоря, она может быть и не temp

Возможно


Цитата(volatile @  24.7.2011,  19:28 Найти цитируемый пост)
Легально получить временную папку можно в winapi (есть спец.функция), или в реестре.

Да, есть функция GetTempPath, но она возвращает временную папку пользователя, от имени которого выполняется данная функция.
Если обращаться к реестру то не понятно что будет на 64-х разрядных системах т.к. там реестр отличается от 32



Цитата(alexvs11 @  24.7.2011,  19:57 Найти цитируемый пост)
ну есть же еще переменная окружения %TEMP%

Как правило у пользователя в его локальных переменных, переменная %temp% переопределена и указывает примерно вот сюда %USERPROFILE%\AppData\Local\Temp

Поэтому оба варианта не подходят мне нужна общая временная папка.


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
bsa
Дата 26.7.2011, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Artemon, зачем?
Если ты собираешься писать какой-то жутко заточенный под Windows код, то делай через реестр и #ifdef/#endif. Если же тебе необходимо кроссплатформенное решение, то придется искать другое решение...
Я бы на твоем месте попытался озвучить задачу, для которой тебе понадобилась эта фигня.
П.С.: WindowsUpdate создает на диске с максимальным объемом каталог (имя которого состоит из набора шестнадцатеричных чисел) и в нем размещает временные файлы. Но, имхо, это не выход.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.