【问题标题】:C# WebBrowser Navigate to File Path fails (file exists)C# WebBrowser 导航到文件路径失败(文件存在)
【发布时间】:2012-01-03 09:06:07
【问题描述】:

我有一个 C# 中的网络浏览器,我想导航到我本地电脑上的路径(html 文件)。 我试过用这个:

if (File.Exists(Path + b.HTML))
                {
                    browserCom1.Navigate(Path + b.HTML);
                }

文件存在,但浏览器一直打开Internet Explorer的错误:“找不到文件:///(我的路径)”

这很奇怪,因为文件是正确的。例如,如果我使用:

System.Windows.Forms.OpenFileDialog browseFile = new   
System.Windows.Forms.OpenFileDialog();
  browseFile.ShowDialog();
  String path = browseFile.FileName;
  browserCom1.Navigate(path);

然后我选择了它之前尝试导航到的同一个文件,它可以工作。

如果我将上面的 brwseFile 文件名打印到控制台(顺便说一下,这与我的 Path+b.HTML 相同),并将其复制粘贴到 Navigate(...) 函数中(更改每个 '\'到'//')它不起作用。

我不知道该怎么做。 我尝试了其他类似的方法:

String path=(File.Open(Path + b.HTML, FileMode.Open).Name);
browserCom1.Navigate(path);

但应用程序一直在此冻结。

我也尝试过使用new URI(path) 等等。

如何简单地导航到计算机上的 HTML 文件?

【问题讨论】:

  • 运行应用程序的账户是否有文件所在文件夹的权限?
  • IIRC 您只能在当前文档已构建处理某些事件后导航到 URL。 WebBrowser 组件的工作方式很奇怪。
  • 我尝试了硬编码值。我在上面也提到过。 C://KioskWpf//WpfApplication2//Images//stuff.html 这是链接。
  • 是的,你是对的,我按照你说的试试这个,路径没问题。有趣的是 FileExists 和 Image 除了这个路径而浏览器不是。我改了谢谢大家。

标签: c# navigation browser


【解决方案1】:

你有 http 斜杠,但应该有文件系统斜杠,比如 c:\something\something.html

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。当我清理代码中的双 \\ 时解决。 如果那不是您的问题 - 您的问题可能是与从字符串解析为 uri 相关的其他问题。 我的路径是这样的:c:\users\someone1\\myFolder\protocol.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      相关资源
      最近更新 更多