Для программы, которую я пишу в vs C# wpf Мне нужно сохранить некоторую информацию, связанную с пользователем, на компьютере пользователя. Насколько я знал, это почти всегда было сделано путем создания папки в C: \ Program Files и добавления любой связанной с программой информации в эту папку в подпапках или что-то еще. После некоторого просмотра я столкнулся с множеством людей, говорящих, что этот метод устарел, потому что иногда доступ может быть запрещен для создания там папки, он работает только для административных учетных записей и т. Д. Один сайт предложил сохранить в c: \ users \ username \ appdata \ roaming или c: \ users \ имя_пользователя \ appdata \ local. Итак, мой вопрос - это лучший и самый современный способ сохранения данных программы на компьютер пользователя?Сохранение папки программы в устаревших файлах программы?
ответ
Посмотрите на этот майкрософт блоге разработчиков Where Should I Store my Data and Configuration Files if I Target Multiple OS Versions:
Вот пример, где вы можете хранить ваши Local для каждого пользователя файлы конфигурации
файлы данных конфигурации, что использование приложений и является уникальным для каждого пользователя , Он остается локальным для отдельной машины и не синхронизируется через Active Directory.
Example: MyMachineSpecificData.xml
Windows 7: %USERPROFILE%\AppData\Local\<MyCompany>\<MyApp>
Vista: %USERPROFILE%\AppData\Local\<MyCompany>\<MyApp>
XP: %USERPROFILE%\Local Settings\Application Data\<MyCompany>\<MyApp>
Так в основном за файлы конфигурации пользователь должен перейти к:
%USERPROFILE%\AppData\[Roaming,Local]
Если эти конфиги должны быть доступны для всех пользователей, то:
%SystemDrive%\ProgramData
Для каждого пользователя данных, которые можно использовать Libraries , Для пользовательского доступа C:\Users\Public
.
Кроме того, вы также можете использовать реестр Windows для хранения ваших конфигураций.
'% USERPROFILE% \ AppData \ [Роуминг, Локальный]' переводится в '% APPDATA%' и '% LOCALAPPDATA%', поэтому вам не нужно вычислять его самостоятельно для каждой ОС. – yaakov
@codran хорошо знать. Я предполагаю, что запуск 'set' в cmd приведет к правильной печати всех переменных окружения? К сожалению, я не использую окна для проверки этого. Но кажется, что ты прав. – incBrain
Также взгляните на это MSDN article.
Это в основном для приложений UWP, но у вас будет общее представление о том, что добавить туда, даже если вы разрабатываете приложение WPF.
Вам может понадобиться эти папки:
Environment.SpecialFolder.ApplicationData
Environment.SpecialFolder.LocalApplicationData
Environment.SpecialFolder.CommonApplicationData
- 1. Сохранение данных программы
- 2. Сохранение программы python
- 3. Сохранение программы c
- 4. Папки данных программы в Linux
- 5. Сохранение состояния программы
- 6. Сохранение пакетной программы вверх
- 7. Сохранение рабочих данных программы
- 8. Сохранение данных программы в C#
- 9. Сохранение настроек программы в Java
- 10. Сохранение программы в главном контуре
- 11. Сохранение изображения программы в guile
- 12. Выполнение программы в файлах в subDirectory
- 13. Создание папки с использованием программы
- 14. Вредоносные программы, появляющиеся в файлах JS
- 15. Название программы, которая табулирует различия в файлах
- 16. Редактировать xml в файлах программы throgh code
- 17. Сохранение всех сетевых входов программы
- 18. Сохранение программы на внешнем сервере
- 19. Ручное сохранение настроек программы DM1
- 20. Разбивка большой программы C в файлах заголовков и файлах C
- 21. Сохранение значений переменных в файлах
- 22. Запуск программы терминала на нескольких входных файлах
- 23. Запуск программы оболочки на нескольких входных файлах
- 24. Сохранение вывода программы в текстовом файле
- 25. Сохранение моей программы Java в безопасности
- 26. Сохранение входных данных программы в базу данных
- 27. Сохранение регистров состояния в COM-программы
- 28. Сохранение вывода вызываемой программы в буфере
- 29. Объяснение программы остановки программы
- 30. Написание программы программы .com
В основном это никогда не было ОК для хранения пользовательских вещи в Program Files, многие программы просто сделали это. У Microsoft есть неплохая документация о том, куда ее поставить. –
Почему бы просто не добавить локальный db к самому приложению? – ChiefTwoPencils
@ChiefTwoPencils и где вы будете хранить БД? Это просто вернется к этому вопросу. – yaakov