Russian Qt Forum
Ноябрь 25, 2024, 05:48
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? (Прочитано 10641 раз)
lenny
Гость
Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
:
Апрель 16, 2011, 09:56 »
Здравствуйте! Подскажите где хранить изменяемые файлы, в windows, для возможности менять файлы с права пользователя, папка с установленной программой не подходит, т.к. приложение скорее всего устанавливается администратором. Обычно получаю путь к Application Data пользователя и там храню файлы. А как дело с этим обстоит в других операционных системах? И есть ли в Qt что-нить для получения Application Data. И как вообще лучше поступить при создании кроссплатформенных приложений?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #1 :
Апрель 16, 2011, 10:50 »
QString QDir::homePath () [static]
QString QDir::tempPath () [static]
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #2 :
Апрель 16, 2011, 19:51 »
Смотри:
enum QDesktopServices::StandardLocation
и
QSettings ini-формат
Записан
Юра.
zenden
Гость
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #3 :
Апрель 16, 2011, 20:36 »
Цитата: Пантер от Апрель 16, 2011, 10:50
QString QDir::homePath () [static]
QString QDir::tempPath () [static]
а потом на винде появляется такая чушь ( каждая программа с unix-корнями непременно создает свою папку не там, где надо)
Настройки надо хранить там, где это требует операционная система. В винде это все стандартизировано и описано в MSDN. Конечно, ленивому программисту легче написать Dir::homePath () и больше не думать об этом.
Записан
lenny
Гость
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #4 :
Апрель 16, 2011, 21:02 »
Спасибо за QDir::homePath ()! Но все-таки напишу для виндуз код отдельно. А где в маке хранят файлы?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #5 :
Апрель 17, 2011, 04:24 »
Цитата: lenny от Апрель 16, 2011, 21:02
А где в маке хранят файлы?
Файлы все-таки рядом с приложением. А (относительно небольшие) настройки - в преференсах, и это очень удобно
Записан
lenny
Гость
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #6 :
Апрель 18, 2011, 11:44 »
Спасибо за советы! QSettings прикольная штука, правда не совсем то, что мне надо.
Записан
Denjs
Гость
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #7 :
Апрель 18, 2011, 15:28 »
Цитата: zenden от Апрель 16, 2011, 20:36
Цитата: Пантер от Апрель 16, 2011, 10:50
QString QDir::homePath () [static]
QString QDir::tempPath () [static]
а потом на винде появляется такая чушь ( каждая программа с unix-корнями непременно создает свою папку не там, где надо)
<...>
Настройки надо хранить там, где это требует операционная система. В винде это все стандартизировано и описано в MSDN. Конечно, ленивому программисту легче написать Dir::homePath () и больше не думать об этом.
а что с файлами? с файлами-то что? вот вы, любезнейший, и расскажите нам тогда, зачем в винде начали копировтаь концепцию Unix-систем - создавать для каждого пользователя "домашние каталоги"? ведь не было этого изначально в виндоус)))
И чем именно вам не нравятся папки начинающиеся с точки? тем что вы не можете их переименовать их быдло-эксплорера? ("мол он , по вине китайских программистов считает что это файл без имени"). я так понимаю это единственная "претензия"??
Где тогда и как по вашему должно хранить файлы относящиеся к только к пользователю, кроме как в его домашнем каталоге? (с цитатами из MSDN пожалуйста) .
а про настройки - скажу так: я понимаю, что рекомендации - это для некоторых "все"... но в гробу я видел лишний раз в болото виндового реестра лезть...) и не я один, полагаю.
Если только глобальные вещи "единые для всех пользователей..." но и это под сомнением...
с другой сторооны - QSettings должен прекрасно справиться с хранением настроек в реестре (в том числе и в плане соответсвия вашему талмуду msdn)... теоретически...
«
Последнее редактирование: Апрель 18, 2011, 15:34 от Denjs
»
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #8 :
Апрель 18, 2011, 20:02 »
Использовать QSettings в любом случае, а файлы рядом с приложением, либо давать юзеру возможность указать куда сохранять (если они юзер специфик, что вообще редкий юзкейз - в большинстве случаев закачанные/созданные файлы будут полезны и другим пользователям).
В любом случае, QSettings ФС не засирает (вернее засирает в пределах разумного), а вот если начать создавать папки в хомяке, будет очень плохо - на маке программы ставятся/удаляются драг&дропом и в общем случае нет способа удалить мусор в хомяке.
Записан
zenden
Гость
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #9 :
Апрель 19, 2011, 11:29 »
Denjs
Цитировать
Где тогда и как по вашему должно хранить файлы относящиеся к только к пользователю, кроме как в его домашнем каталоге? (с цитатами из MSDN пожалуйста) .
Цитировать
Per user, roaming CSIDL_APPDATA [user profile]\Application data
Per user, non-roaming CSIDL_LOCAL_APPDATA [user profile]\Local Settings\Application data
http://msdn.microsoft.com/en-us/library/ms995853.aspx
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #10 :
Апрель 19, 2011, 17:30 »
Цитата: Авварон от Апрель 18, 2011, 20:02
а файлы рядом с приложением
В Windows могут быть ограничения по-умолчанию на доступ по записи к каталогу с приложением, особенно если оно в Program Files.
Записан
mutineer
Гость
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #11 :
Апрель 19, 2011, 17:31 »
Цитата: xokc от Апрель 19, 2011, 17:30
Цитата: Авварон от Апрель 18, 2011, 20:02
а файлы рядом с приложением
В Windows могут быть ограничения по-умолчанию на доступ по записи к каталогу с приложением, особенно если оно в Program Files.
В семерке, например, Program Files юзеру для записи недоступен. По умолчанию, естественно
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Подскажите, где хранить изменяемые файлы
«
Ответ #12 :
Апрель 20, 2011, 07:24 »
Доступ-то недоступен, но винда как-то это отрабатывает. У меня конфиги лежат рядом с прогой и редактировать их из проги получается, вот только измененный вариант ложится системой в хомяк и впоследствии работа происходит с ним.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
xokc
Птица говорун
Offline
Сообщений: 976
Re: Подскажите, где хранить изменяемые файлы
«
Ответ #13 :
Апрель 20, 2011, 20:27 »
Цитата: Пантер от Апрель 20, 2011, 07:24
Доступ-то недоступен, но винда как-то это отрабатывает
Какая версия? Если Vista и выше - должен быть отключён (или соответствующим образом настроен) UAC и пользователь должен быть из группы админов. Но это всё лишь частные случаи.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями?
«
Ответ #14 :
Апрель 21, 2011, 07:29 »
Цитата: xokc от Апрель 20, 2011, 20:27
Какая версия? Если Vista и выше - должен быть отключён (или соответствующим образом настроен) UAC и пользователь должен быть из группы админов. Но это всё лишь частные случаи.
Это было в семерочке. Пользователь не админ.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...