shershen Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 Где хранить инишник с настройками программы? Выбираю из "/Users/<username>/Library" и "/Users/<username>/Library/Application Support", встречаются разные мнения Цитата Ссылка на комментарий
0 d7d1cd Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 А в папке рядом с исполняемым файлом разве нельзя хранить? Цитата Ссылка на комментарий
0 shershen Опубликовано 9 сентября, 2014 Автор Поделиться Опубликовано 9 сентября, 2014 А разве это кошерно? А для разных юзеров? Цитата Ссылка на комментарий
0 d7d1cd Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 А разве это кошерно? А для разных юзеров?Понятно, что для разных юзеров, в случае хранения настроек как я предложил, немного сложнее реализовать все как надо. Но с другой стороны, лично я очень не люблю программы, которые своими файлами засир... засоряют всю систему, а потом при удалении программы не убирают их за собой. Поэтому сам стараюсь делать программу так, чтобы удалить ее было как можно проще. Вплоть до простого удаления папки с программой. В общем, все свое ношу с собой, так сказать Цитата Ссылка на комментарий
0 shershen Опубликовано 9 сентября, 2014 Автор Поделиться Опубликовано 9 сентября, 2014 Что ж, не лишено смысла. Тем не менее, оригинальный вопрос остается открытым. Цитата Ссылка на комментарий
0 AngryOwl Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 Ну под Windows и MacOS можно типа так: function GetMyINIPath(const ASubdir: string = ''): string; begin try if ASubdir = '' then Result := IncludeTrailingPathDelimiter({$IFDEF MACOS}'/Users/Shared/'{$ELSE}GetHomePath{$ENDIF}) + ChangeFileExt(ExtractFileName(ParamStr(0)), '') else Result := IncludeTrailingPathDelimiter({$IFDEF MACOS}'/Users/Shared/'{$ELSE}GetHomePath{$ENDIF}) + ChangeFileExt(ExtractFileName(ParamStr(0)), '') + PathDelim + ASubdir; if not DirectoryExists(Result) then ForceDirectories(Result); except Result := ''; end; end; А использовать, соответственно, так: TPath.Combine(GetMyINIPath, _ваш_файл_); А под Android, например, еще проще можно: TPath.Combine(TPath.GetDocumentsPath, _ваш_файл_); Может не слишком "красиво", но работать все должно. Kitty 1 Цитата Ссылка на комментарий
0 Danm Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 Под OSX можно использовать, например, TPath.Combine(TPath.GetLibraryPath, 'Preferences'); Цитата Ссылка на комментарий
0 Danm Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 А в папке рядом с исполняемым файлом разве нельзя хранить? Такая программа зарежется на постпродакшене: что на Win, что на OSX Это только если писать софт "для себя". Ну либо если из ini данные только считываются, что не имеет смысла) Цитата Ссылка на комментарий
0 d7d1cd Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 Может я чего то не знаю... Почему "зарежется"? Что преступного в том, что настройки лежат рядом с исполняемым файлом (хоть читать, хоть писать ini файл)? Цитата Ссылка на комментарий
0 Danm Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 Запись, например в виндовые program files, запрещена для не админа. В osx аналогично. Это уже несколько оффтоп и на эту тему масса информации в интернете. (UAC, права,и.т.д..) Для osx я уже выше написал что делать, для виндоса же можно использовать GetSpecialFolderPath() AngryOwl 1 Цитата Ссылка на комментарий
0 d7d1cd Опубликовано 9 сентября, 2014 Поделиться Опубликовано 9 сентября, 2014 Теперь понятно. Спасибо за просвещение! Цитата Ссылка на комментарий
0 serser Опубликовано 10 октября, 2014 Поделиться Опубликовано 10 октября, 2014 Можно использовать класс TUserInifile из модуля Apple.Inifiles, который был в XE4 если не ошибаюсь. Он хранит настройки персонально для каждого пользователя в plist-ах (в ~/Library/Preferences) используя класс NSUserDefaults Цитата Ссылка на комментарий
Вопрос
shershen
Где хранить инишник с настройками программы? Выбираю из "/Users/<username>/Library" и "/Users/<username>/Library/Application Support", встречаются разные мнения
Ссылка на комментарий
11 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.