我尝试了很多解决方案,但我无法获得理想的结果。我知道可以使用Environment.SpecialFolder枚举的事实。我已经尝试了所有这些但是徒劳无功。我正在编写一个需要在C#>中访问此文件夹的服务 C:\ Users \用户Shahbaaz \ EFB
使用Win 7,.Net 4,VS13
更新: 我的问题是我无法以编程方式访问C:\ Users \ Shahbaaz.Shahbaaz是登录帐户的名称。 efb文件夹仅用于说明。对于那个很抱歉。我曾使用过UserProfile枚举,但结果是C:\ SYSTEM目录。 CommonDocuments等给我C:\ Users \ Public ...目录。另外,如果我只使用Environment.Username,它会给我SYSTEM而不是登录用户名。希望这有帮助!
答案 0 :(得分:0)
我想我知道发生了什么事。写了一个小测试:
[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\<myusername>
...
但是:您正在使用服务(您的标记指示)并且您可能正在使用LocalSystem帐户运行该服务。本地系统帐户在预期位置没有用户文件夹。在您的用户帐户下运行您的服务或接受给定路径作为LocalSystem帐户的配置文件文件夹。不要尝试从LocalSystem访问您的用户帐户。您可能会收到权限错误。