2012-02-23 70 views

回答

1

您绝对应该使用而不是使用Program Files目录来存储动态信息。

该Windows博客User Account Control Data Redirection给出了一个很好的总结:

确保一旦你已经确定了合适的位置,你不硬编码路径。相反,使用下面的编程模型和API来检索特定Windows已知文件夹的正确路径:

C/C++本地应用程序:使用检索已知文件夹通过文件夹的KNOWNFOLDERID确定的完整路径SHGetKnownFolderPath功能指示已知位置的GUID参数您想获得:

  • FOLDERID_ProgramData - 共享所有用户的节目数据目录
  • FOLDERID_LocalAppData - 每用户程序数据目录(非漫游)
  • FOLDERID_RoamingAppData - 每用户程序数据目录(漫游)

托管代码:使用System.Environment.GetFolderPath函数。 GetFolderPath需要说明的已知位置的参数,你想获得:

  • Environment.SpecialFolder.CommonApplicationData - (每用户程序数据目录的非 - 共享的程序数据对所有用户
  • Environment.SpecialFolder.LocalApplicationData目录漫游通)
  • Environment.SpecialFolder.ApplicationData - 每用户程序数据目录(漫游)

如果没有上述的选项可用,使用环境变量:

  • %ALLUSERSPROFILE% - 为所有用户共享的程序数据目录
  • %LOCALAPPDATA% - 每用户程序数据目录(非漫游) - Windows Vista或更高
  • %APPDATA% - 每用户程序数据目录(漫游) - Windows Vista或更高版本