对于我正在编写的程序vs C#wpf我需要在用户的计算机上存储一些用户相关信息。据我所知,这几乎总是通过在C:\ Program Files中创建一个文件夹并在子文件夹或其他任何东西中添加与该文件夹相关的任何程序相关信息来完成。在做了一些浏览后,我遇到很多人说这个方法已经过时了,因为有时可能会拒绝访问以在那里创建一个文件夹,它只适用于管理帐户等。一个站点建议保存到c:\ users \ username \ appdata \ roaming或c:\ users \ username \ appdata \ local。所以我的问题是将程序数据保存到用户计算机的最佳和最新方法是什么?
答案 0 :(得分:1)
看看这个微软开发人员博客Where Should I Store my Data and Configuration Files if I Target Multiple OS Versions:
以下是您可以存储本地每用户配置文件
的示例应用程序使用的配置数据文件,每个用户都是唯一的。它保留在单个计算机的本地,并且不通过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注册表来存储您的配置。
答案 1 :(得分:1)
另请查看此MSDN article。
它主要用于UWP应用程序,但即使您正在开发WPF应用程序,也可以大致了解要放在哪里。
您可能需要以下文件夹:
NavigationPage.SetHasNavigationBar(this, false);
Environment.SpecialFolder.ApplicationData
Environment.SpecialFolder.LocalApplicationData