C# 找到用户的正确方法/<;名称>;C中的目录#
我尝试了很多解决方案,但都没有达到预期的效果。我知道可以使用Environment.SpecialFolder枚举。我已经试过了,但都没有用。我正在编写一个需要访问C#> C:\Users\Shahbaaz\efb 正在处理Win7、.NET4和VS13 更新:C# 找到用户的正确方法/<;名称>;C中的目录#,c#,c#-4.0,windows-services,C#,C# 4.0,Windows Services,我尝试了很多解决方案,但都没有达到预期的效果。我知道可以使用Environment.SpecialFolder枚举。我已经试过了,但都没有用。我正在编写一个需要访问C#> C:\Users\Shahbaaz\efb 正在处理Win7、.NET4和VS13 更新: 我的问题是无法以编程方式访问C:\Users\Shahbaaz。Shahbaaz是登录帐户的名称。efb文件夹仅用于图示。很抱歉。我使用了UserProfile enum,但最终得到了C:\SYSTEM目录。CommonDocument
我的问题是无法以编程方式访问C:\Users\Shahbaaz。Shahbaaz是登录帐户的名称。efb文件夹仅用于图示。很抱歉。我使用了UserProfile enum,但最终得到了C:\SYSTEM目录。CommonDocuments等给了我C:\Users\Public。。。目录。另外,如果我只使用Environment.Username,它会给我系统而不是登录的用户名。希望这有帮助 我想我知道发生了什么事。写了一个小测试:
[Test]
public void PrintAllSpecialFolders()
{
var values = Enum.GetValues(typeof(Environment.SpecialFolder));
Console.WriteLine("Printing special folder paths:");
foreach (Environment.SpecialFolder value in values)
{
Console.WriteLine("{0}: {1}", value, Environment.GetFolderPath(value, Environment.SpecialFolderOption.None));
}
}
这清楚地显示了预期结果(Windows 7):
。。。
UserProfile:C:\Users\
...
但是:您正在使用一项服务(您的标记指明了该服务),并且您可能正在本地系统帐户下运行该服务。本地系统帐户在预期位置没有用户文件夹。在用户帐户下运行服务,或者接受给定路径作为LocalSystem帐户的配置文件文件夹。不要尝试从LocalSystem访问您的用户帐户。您可能会遇到权限错误 到底出了什么问题?使用SpecialFolder枚举得到了什么?“efb”文件夹是什么?这是不标准的。我的问题是无法通过编程方式访问C:\Users\Shahbaaz。Shahbaaz是登录帐户的名称。efb文件夹仅用于图示。很抱歉。我使用了UserProfile enum,但最终得到了C:\SYSTEM目录。CommonDocuments等给了我C:\Users\Public\。。。目录。另外,如果我只使用Environment.Username,它会给我系统而不是登录的用户名。希望这有帮助!你看过Environment.SpecialFolder上的文档了吗?看起来你应该使用SpecialFolder.UserProfile,是的。UserProfile将我引导到以下目录:C:\Windows\system32\config\systemprofile\Thank!这让人大开眼界。事实证明,要在(我的)用户帐户上运行我的服务,我需要在每次安装时提及我的密码。现在这可能是一个障碍,因为我正在编写一个动态服务,作为我项目的一部分,它可以在任何pc上执行。也许,我应该更改所需文件夹的位置,以一劳永逸地缓解这种情况。再次感谢!
...
UserProfile: C:\Users\<myusername>
...