Название: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: lenny от Апрель 16, 2011, 09:56 Здравствуйте! Подскажите где хранить изменяемые файлы, в windows, для возможности менять файлы с права пользователя, папка с установленной программой не подходит, т.к. приложение скорее всего устанавливается администратором. Обычно получаю путь к Application Data пользователя и там храню файлы. А как дело с этим обстоит в других операционных системах? И есть ли в Qt что-нить для получения Application Data. И как вообще лучше поступить при создании кроссплатформенных приложений?
Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: Пантер от Апрель 16, 2011, 10:50 QString QDir::homePath () [static]
QString QDir::tempPath () [static] Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: lit-uriy от Апрель 16, 2011, 19:51 Смотри:
enum QDesktopServices::StandardLocation и QSettings ini-формат Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: zenden от Апрель 16, 2011, 20:36 QString QDir::homePath () [static] QString QDir::tempPath () [static] а потом на винде появляется такая чушь ( каждая программа с unix-корнями непременно создает свою папку не там, где надо) (http://habreffect.ru/files/21d/71d511d98/screenshot_2011-04-16_002.jpg) Настройки надо хранить там, где это требует операционная система. В винде это все стандартизировано и описано в MSDN. Конечно, ленивому программисту легче написать Dir::homePath () и больше не думать об этом. Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: lenny от Апрель 16, 2011, 21:02 Спасибо за QDir::homePath ()! Но все-таки напишу для виндуз код отдельно. А где в маке хранят файлы?
Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: Igors от Апрель 17, 2011, 04:24 А где в маке хранят файлы? Файлы все-таки рядом с приложением. А (относительно небольшие) настройки - в преференсах, и это очень удобноНазвание: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: lenny от Апрель 18, 2011, 11:44 Спасибо за советы! QSettings прикольная штука, правда не совсем то, что мне надо.
Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: Denjs от Апрель 18, 2011, 15:28 QString QDir::homePath () [static] QString QDir::tempPath () [static] а потом на винде появляется такая чушь ( каждая программа с unix-корнями непременно создает свою папку не там, где надо) <...> Настройки надо хранить там, где это требует операционная система. В винде это все стандартизировано и описано в MSDN. Конечно, ленивому программисту легче написать Dir::homePath () и больше не думать об этом. И чем именно вам не нравятся папки начинающиеся с точки? тем что вы не можете их переименовать их быдло-эксплорера? ("мол он , по вине китайских программистов считает что это файл без имени"). я так понимаю это единственная "претензия"?? Где тогда и как по вашему должно хранить файлы относящиеся к только к пользователю, кроме как в его домашнем каталоге? (с цитатами из MSDN пожалуйста) . а про настройки - скажу так: я понимаю, что рекомендации - это для некоторых "все"... но в гробу я видел лишний раз в болото виндового реестра лезть...) и не я один, полагаю. Если только глобальные вещи "единые для всех пользователей..." но и это под сомнением... с другой сторооны - QSettings должен прекрасно справиться с хранением настроек в реестре (в том числе и в плане соответсвия вашему талмуду msdn)... теоретически... Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: Авварон от Апрель 18, 2011, 20:02 Использовать QSettings в любом случае, а файлы рядом с приложением, либо давать юзеру возможность указать куда сохранять (если они юзер специфик, что вообще редкий юзкейз - в большинстве случаев закачанные/созданные файлы будут полезны и другим пользователям).
В любом случае, QSettings ФС не засирает (вернее засирает в пределах разумного), а вот если начать создавать папки в хомяке, будет очень плохо - на маке программы ставятся/удаляются драг&дропом и в общем случае нет способа удалить мусор в хомяке. Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: zenden от Апрель 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 Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: xokc от Апрель 19, 2011, 17:30 а файлы рядом с приложением В Windows могут быть ограничения по-умолчанию на доступ по записи к каталогу с приложением, особенно если оно в Program Files.Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: mutineer от Апрель 19, 2011, 17:31 а файлы рядом с приложением В Windows могут быть ограничения по-умолчанию на доступ по записи к каталогу с приложением, особенно если оно в Program Files.В семерке, например, Program Files юзеру для записи недоступен. По умолчанию, естественно Название: Re: Подскажите, где хранить изменяемые файлы Отправлено: Пантер от Апрель 20, 2011, 07:24 Доступ-то недоступен, но винда как-то это отрабатывает. У меня конфиги лежат рядом с прогой и редактировать их из проги получается, вот только измененный вариант ложится системой в хомяк и впоследствии работа происходит с ним.
Название: Re: Подскажите, где хранить изменяемые файлы Отправлено: xokc от Апрель 20, 2011, 20:27 Доступ-то недоступен, но винда как-то это отрабатывает Какая версия? Если Vista и выше - должен быть отключён (или соответствующим образом настроен) UAC и пользователь должен быть из группы админов. Но это всё лишь частные случаи.Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: Пантер от Апрель 21, 2011, 07:29 Какая версия? Если Vista и выше - должен быть отключён (или соответствующим образом настроен) UAC и пользователь должен быть из группы админов. Но это всё лишь частные случаи. Это было в семерочке. Пользователь не админ.Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: lenny от Апрель 21, 2011, 11:12 Хорошая прога должна избавлять админов от лишних настроек при установке или внедрению. Для винды сделал в Application Data пользователя, для осталного в хом.
Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: andybeg от Апрель 21, 2011, 12:36 можно ещё хранить настройки например в БД
Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: mutineer от Апрель 21, 2011, 12:50 А БД хранить в ...? И все возвращается к начальному вопросу
Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: andybeg от Апрель 21, 2011, 14:35 Цитировать А БД хранить в ...? И все возвращается к начальному вопросу а не всё ли равно? бд сама занимается хранением баз ...Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: Пантер от Апрель 21, 2011, 14:41 Цитировать А БД хранить в ...? И все возвращается к начальному вопросу а не всё ли равно? бд сама занимается хранением баз ...Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: Denjs от Апрель 21, 2011, 14:47 Цитировать А БД хранить в ...? И все возвращается к начальному вопросу а не всё ли равно? бд сама занимается хранением баз ...Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: Sancho_s_rancho от Апрель 21, 2011, 14:50 Хорошая прога должна избавлять админов от лишних настроек при установке или внедрению. Для винды сделал в Application Data пользователя, для осталного в хом. Хде-хде. Известно где! QDesktopServices::storageLocation(QDesktopServices::DataLocation)Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: andybeg от Апрель 21, 2011, 15:50 Цитировать Это как так? ставим мускуль и коннектимся к немуНазвание: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: mutineer от Апрель 21, 2011, 15:58 Цитировать Это как так? ставим мускуль и коннектимся к немуТо бишь чтобы заюзать приложение нужен установленный и запущенный мускуль? Как-то не очень юзер-френдли Название: Re: Подскажите, где хранить изменяемые файлы кроссплатформенными приложениями? Отправлено: Пантер от Апрель 21, 2011, 16:02 Цитировать Это как так? ставим мускуль и коннектимся к нему |