【发布时间】:2018-11-09 09:20:42
【问题描述】:
我有一个用 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 服务运行。我目前使用的代码适用于我完成的少数测试。似乎应该有一种更智能(防错)的方式来获取这条路径。
另一个想法...也许有一个注册表项可以给我我正在寻找的东西?嗯
【问题讨论】:
-
我想知道用户怎么可能也存在于其他目录中。
-
是的,我知道这是可能的......这就是为什么我正在寻找更好的解决方案。
-
否;我的意思是让用户存在于多个目录中。
-
你不应该使用像上面这样的硬编码路径,因为它们在操作系统版本上不一致。虽然较新版本的 Windows 确实通过对旧文件夹名称进行软/硬链接来支持向后兼容性,但不能保证总是如此
-
@Tseng:这正是他问这个问题的原因。