gpt4 book ai didi

c# - 从windows服务获取用户根目录

转载 作者:可可西里 更新时间:2023-11-01 13:47:15 24 4
gpt4 key购买 nike

我有一个用 C# 编写的 Windows 服务。我需要向每个用户目录添加一个文件。我怎样才能找到开始的路径?我意识到这真的很愚蠢,但这就是我目前正在做的事情:

  if (Directory.Exists("C:\\Users"))
{
path = "C:\\Users";
}
else if (Directory.Exists("C:\\Documents and Settings"))
{
path = "C:\\Documents and Settings";
}

我查看了特殊文件夹:http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx

他们似乎都没有返回我需要的东西。例如,ApplicationData 返回 System32 目录的路径。我认为这是因为它作为 Windows 服务运行。我目前使用的代码适用于我完成的少数测试。似乎应该有一种更智能(防错)的方式来获取这条路径。

另一个想法...也许有一个注册表项可以提供我正在寻找的东西?嗯嗯

最佳答案

我在 Win7 注册表下找到了这个。 XP 看起来具有相同的注册表项,但值中包含“所有用户”配置文件。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Common Desktop"="C:\\Users\\Public\\Desktop"
"Common Start Menu"="C:\\ProgramData\\Microsoft\\Windows\\Start Menu"
"CommonVideo"="C:\\Users\\Public\\Videos"
"CommonPictures"="C:\\Users\\Public\\Pictures"
"Common Programs"="C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs"
"CommonMusic"="C:\\Users\\Public\\Music"
"Common Administrative Tools"="C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Administrative Tools"
"Common Startup"="C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"
"Common Documents"="C:\\Users\\Public\\Documents"
"OEM Links"="C:\\ProgramData\\OEM Links"
"Common Templates"="C:\\ProgramData\\Microsoft\\Windows\\Templates"
"Common AppData"="C:\\ProgramData"

关于c# - 从windows服务获取用户根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18132419/

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