【问题标题】:Get environment variable of another user?获取另一个用户的环境变量?
【发布时间】:2017-04-11 16:43:12
【问题描述】:

我有一个 Windows 服务程序,将文件保存在本地系统用户的应用程序数据文件夹中。我还有一个需要读取这些文件并在不同用户帐户上运行的 Windows 窗体,但我不知道如何获取另一个用户的环境变量,特别是本地系统。如果可能的话,我会很感激一个例子,提前谢谢你。

【问题讨论】:

  • 你试过String myEnv = System.getenv("env_name");吗?
  • 可能会更改您的程序以读取和写入通用应用程序数据文件夹,而不是用户特定的应用程序数据文件夹。
  • @ScottChamberlain 我可能应该这样做,这样会更容易,顺便说一句,什么是好的通用应用程序数据文件夹?

标签: c# windows environment-variables


【解决方案1】:

只需调用Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 并在它返回的文件夹中创建一个子文件夹来存储您的文件。该位置被设计为非用户特定的数据存储位置。

默认位置是C:\ProgramData,但您应该使用该函数来获取它,而不是硬编码路径。此外,您不能将文件保存在该文件夹的根目录中,但您可以创建子文件夹并将文件保存在其中。

【讨论】:

  • 请注意,如果一个用户的文件不应该对另一个用户可见(例如,如果它们包含该人的私人信息),您应该确保设置相应地对文件的权限。 (如果其他用户可以读取文件是可以的,你就不用费心了。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 2011-09-03
  • 1970-01-01
  • 2013-07-01
相关资源
最近更新 更多