1

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

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

我试过的:

  1. C:\Users\%USERNAME%\AppData\Roaming\myapp\file.html
  2. C:\Users\AppData\Roaming\myapp\file.html

谢谢!

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

string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string address = Path.Combine(folderPath + @"\myapp\file.html");
webBrowser1.Navigate(address);
4

2 回答 2

7

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

此外,如果您需要访问AppData漫游用户的目录,则无需硬编码即可获得文件夹路径(不要忘记用户目录并不总是c:\users在每个 Windows 版本上,路径AppData也可能不同):

string folderPath = Environment.GetFolderPath(
    Environment.SpecialFolder.ApplicationData);

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

string url = Path.Combine(folderPath, "file.htm");

备注
如果出于任何原因需要使用环境变量,则必须首先扩展它们:

string path = Environment.ExpandEnvironmentVariables(@"C:\Users\%USERNAME%\");
于 2012-07-06T11:58:20.313 回答
1

看看这个功能。它返回当前用户的应用程序数据文件夹的路径。

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
于 2012-07-06T11:59:01.687 回答