在不知道用户名的情况下获取用户特定路径

Nat*_*han 1 c# url webbrowser-control username

我有一个HTML文件C:\Users\myusername\AppData\Roaming\myapp\file.html.我通过C#应用程序中的Web浏览器访问该文件,以便从应用程序中进行预览.
但是,当应用程序放到另一台计算机上时,webBrowser1中的地址仍然特定于我的用户名,因此其他人无法访问预览.

有没有办法在我的网络浏览器中将文件作为URL访问,而没有URL中的硬编码用户名?

我尝试过的:

  1. C:\用户\%USERNAME%\ AppData的\漫游\ MYAPP\file.html
  2. C:\用户\应用程序数据\漫游\ MYAPP\file.html

谢谢!

这是我帮助后使用的代码:

string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string address = Path.Combine(folderPath + @"\myapp\file.html");
webBrowser1.Navigate(address);
Run Code Online (Sandbox Code Playgroud)

Adr*_*tti 7

如果要获取当前登录用户的名称,则必须读取Environment.UserName属性.

此外,如果您需要访问AppData漫游用户的目录,您可以获得文件夹路径而无需硬编码任何内容(不要忘记,c:\users每个Windows版本和路径上的用户目录并不总是AppData有所不同):

string folderPath = Environment.GetFolderPath(
    Environment.SpecialFolder.ApplicationData);
Run Code Online (Sandbox Code Playgroud)

在你的情况下,只需附加文件名:

string url = Path.Combine(folderPath, "file.htm");
Run Code Online (Sandbox Code Playgroud)

注意
如果出于任何原因需要使用环境变量,那么首先要扩展它们:

string path = Environment.ExpandEnvironmentVariables(@"C:\Users\%USERNAME%\");
Run Code Online (Sandbox Code Playgroud)