Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不知道用户名的情况下获取用户特定路径_C#_Url_Webbrowser Control - Fatal编程技术网

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

C# 在不知道用户名的情况下获取用户特定路径,c#,url,webbrowser-control,C#,Url,Webbrowser Control,我在C:\Users\myusername\AppData\Roaming\myapp\file.HTML中有一个HTML文件。我正在通过我的C#应用程序中的web浏览器访问该文件,以便从应用程序中预览它。 但是,当应用程序被放到另一台计算机上时,webBrowser1中的地址仍然是我的用户名的专用地址,因此其他人无法访问预览 有没有一种方法可以在我的web浏览器中以URL的形式访问该文件,而不必在URL中使用硬编码的用户名 我所尝试的: C:\Users\%USERNAME%\AppData\

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

有没有一种方法可以在我的web浏览器中以URL的形式访问该文件,而不必在URL中使用硬编码的用户名

我所尝试的:

  • C:\Users\%USERNAME%\AppData\Roaming\myapp\file.html
  • 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);
    

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

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

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

    string url = Path.Combine(folderPath, "file.htm");
    
    注释
    如果出于任何原因,需要使用环境变量,则必须首先展开它们:

    string path = Environment.ExpandEnvironmentVariables(@"C:\Users\%USERNAME%\");
    

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

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

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

    string url = Path.Combine(folderPath, "file.htm");
    
    注释
    如果出于任何原因,需要使用环境变量,则必须首先展开它们:

    string path = Environment.ExpandEnvironmentVariables(@"C:\Users\%USERNAME%\");
    

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

    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
    

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

    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
    

    @Nathan我建议你不要构建路径,路径在XP/Vista上是不同的,它可能是本地化的。最好使用GetFolderPath()获得完全正确的安全路径,这样您运行的操作系统就不重要了。好的,我更新了帖子和应用程序中的代码。我使用的是Windows 7,这是我开发的唯一Windows版本,因此我不知道文件路径会有所不同:D@Nathan我建议您不要构建该路径,该路径在XP/Vista上不同,并且可能已本地化。最好使用GetFolderPath()获得完全正确的安全路径,这样您运行的操作系统就不重要了。好的,我更新了帖子和应用程序中的代码。我使用的是Windows7,这是我开发的唯一一个Windows版本,所以我不知道文件路径会有所不同:D