gpt4 book ai didi

windows - 我的 winform 应用程序使用 xml 文件来存储数据,我应该将它们存储在哪里以便 Vista 用户可以写入它们?

转载 作者:可可西里 更新时间:2023-11-01 09:41:04 25 4
gpt4 key购买 nike

我的 winform 应用程序使用 xml 文件来存储数据,我应该将它们存储在哪里以便 Vista 用户可以写入它们?

谢谢

最佳答案

使用 Environment.GetFolderPath以独立于操作系统的方式获取最合适的文件夹。

特别是,您需要以下 SpecialFolder 值之一:

  • ApplicationData - 如果文件是漫游的,每个用户,并且仅供应用程序使用,不代表用户可能关心的文件。
  • LocalApplicationData - 如果文件是非漫游的、针对每个用户的并且仅供应用程序使用并且不代表用户可能关心的文件。
  • CommonApplicationData - 如果文件是漫游的,对所有用户都是通用的,并且仅供应用程序使用,不代表用户可能关心的文件。 注意: 在 Vista 上,它映射到 C:\ProgramData,默认情况下对普通用户来说是只读的(由于更改那里的文件可能会影响管理员使用的程序的行为)。您可以明确更改应用子文件夹的权限,也可以选择其他选项之一。
  • MyDocuments - 如果文件是针对每个用户的并且代表文档。

请注意,没有像 CommonDocuments 这样的 SpecialFolder 枚举值代表机器范围的文档存储,即使有一个文件夹旨在像一个服务(C:\Documents and Settings\All Users\Documents 在 XP 和 C:\Users\Public\Documents 在 Vista 上)。如果要写入这些位置,您将必须自己找到操作系统版本并选择适当的文件夹。

内部 Environment.GetFolderPath 使用 Win32 API SHGetFolderPath . SHGetFolderPath 使用的枚举为您提供了几个其他特殊文件夹(包括 Common Documents)的众所周知的位置。你可以直接使用SHGetFolderPath;你可以找到它的 p/invoke definition和相应的CSIDL enum definition在 PInvoke.net 上。

您还可以使用 IsolatedStorage .但是,它是不可漫游的、针对每个用户的、配额有限的并且用户不容易从 Windows 资源管理器访问。因此,它实际上是等同于 SpecialFolder.ApplicationData 的中/低信任度。

关于windows - 我的 winform 应用程序使用 xml 文件来存储数据,我应该将它们存储在哪里以便 Vista 用户可以写入它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/588207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com