c# - 在 Windows 7 和 Vista 中存储应用程序数据的位置

标签 c# windows-7 uac application-settings special-folders

我的应用程序需要像大多数应用程序一样存储数据。该应用程序以前仅在 XP 上使用,它会将数据存储在 Program Files 中。现在我们的客户正在迁移到 Windows 7,我必须对其进行升级,以便将数据存储在一个新文件夹中。我选择了 ApplicationData 文件夹,因为我认为我根本不需要 UAC 就可以访问。

现在在一些 Windows 7 机器上这很好,但在其他机器上访问文件夹失败,可能是因为权限,但当以管理员权限运行时程序运行正常。

我使用了错误的文件夹还是这些情况异常?无论哪种情况,这种事情的最佳做法是什么?

我正在使用以下 C# SpecialFolder 获取 AppData 文件夹位置。

System.Environment.SpecialFolder.ApplicationData

最佳答案

System.Environment.SpecialFolder.ApplicationData 是每个用户和漫游。这听起来不像你想要的。您似乎需要机器范围的设置,因此应该使用 System.Environment.SpecialFolder.CommonApplicationData

因为 CommonApplicationData 在所有用户之间共享,所以默认访问控制是有限的。默认情况下,标准用户不能在此位置写入。推荐的做法是在安装时创建 CommonApplicationData 的子文件夹,并为其分配适当的许可访问控制设置。

关于c# - 在 Windows 7 和 Vista 中存储应用程序数据的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5116911/

相关文章:

c++ - 如何以编程方式设置系统IP

c# - 多线程应用程序中的 SQLite "Database is locked"错误

c# - Toast 显示不止一次

c# - 在 C++ 逻辑层上转换 int

java - 在 windows 7 上运行的 java 应用程序如何选择要使用的网络适配器

mysql - 更新 mysql XML blob

c# - 如何使用用户权限而不是事件权限启动程序

c# - 使用 PdfWriter 和 iTextSharp 以及 SetFontAndSize 函数的斜体文本

c++ - 将窗口设置为始终在 Windows 7 上的桌面上

c# - 从c#读取文件需要时提示UAC