-2
我有用户调用'amsd',路径是'C:\ Users \ amsd'。之后,我将用户名更改为“其他”。但路径并未改变,其名称与以前相同。但是现在我想要做的是,我需要从当前用户访问该路径。让我们假设我只知道用户名(其他)而不知道路径变量名(c:\ users \ amsd)。但我需要访问该路径。我怎样才能做到这一点。我试过System.Environment.GetEnvironmentVariable("other");
但是它的空白值为如何获取环境变量名称
你所说的“更改用户名”是什么意思?你是否改变登录用户或只有他的名字?你想要当前登录用户(执行你的应用程序的用户)或给定用户名的配置文件路径吗? –
您可以通过P/Invoke调用[GetUserProfileDirectory](https://msdn.microsoft.com/library/windows/desktop/bb762280(v = vs.85).aspx)。但是,您必须传递一个用户句柄,这会要求您实际以该用户身份进行身份验证,即输入密码。似乎只有用户名或SID才能做到这一点。您也许可以枚举'C:\ Users'的子文件夹并查看它们的ACL以确定哪一个属于所讨论的用户。 – Joey
@Joey在c#中做了与此相关的任何代码。我搜索了这种方法,但我在C++中发现了代码。或者你可以提到一些链接 – Mehdi