в моем приложении мне нужно хранить настройки, которые являются «глобальными» (т.е. не специфичными для пользователя) в известном и предсказуемом месте.
Я хочу, чтобы приложение можно было запускать из любого места (как обычный пользователь, а не администратор), включая несколько копий из разных мест, и иметь возможность читать и записывать сохраненные файлы конфигурации.
Данные должны иметь права на чтение и запись для ВСЕХ стандартных пользователей, а не только для одного.
Имея это в виду, четыре опции, отмеченные здесь, неуместны:
http://msdn.microsoft.com/en-us/library/bb206295(VS.85).aspx#ID0E1BA
Так, каковы мои альтернативы?
Мое приложение написано на C ++ и только для Windows. Мне нужно поддерживать Windows XP и выше.
Спасибо.
EDIT:
Чтобы уточнить, игнорируйте условия гонки, вызванные несколькими случаями. Этот вопрос касается исключительно того, ГДЕ ХРАНИТЬ ДАННЫЕ. Я не вижу нигде подходящего, что:
- Предсказуемый (например,% APPDATA% \ Foo - это «предсказуемый» путь, но, к сожалению, для пользователя)
- Global (например,% PROGRAMDATA% \ Foo - это глобальный путь, но, к сожалению, только у создателя есть доступ на запись)
- Доступно (обычный пользователь должен иметь возможность создавать новые файлы в данном каталоге, это относится ко всем пользователям в системе)