【问题标题】:Trying to pass spaces when launching Chrome启动 Chrome 时尝试传递空格
【发布时间】:2012-11-23 17:07:43
【问题描述】:

我正在尝试从 c# Windows 窗体启动 Chrome 的外部实例。只要本地 html 文件的路径中没有空格,它就可以正常工作。如果 Chrome 在第一个空格处停止。 例如: "file:///C:/Users/user/Documents/Visual" 我试图通过像 Chrome 通常那样用“%20”替换字符串中的空格来解决这个问题。现在我得到这个乱码地址: "file:///C:/Users/user/Documents/Visual%2520Studio%2520%2012/TEMP.html"

这是我的代码的 sn-p:

string chromeTempFilePath = tempFilePath.Replace(" ", "%20");

Process.Start(browserPaths[2], chromeTempFilePath);//launch Chrome  

Process.Start 在路径中有空格的情况下适用于 Firefox 和 IE 9。 任何帮助将不胜感激,因为我或多或少被难住了!

【问题讨论】:

  • %2520% 表示双空格
  • Chrome 为什么要加空格呢?

标签: c# google-chrome process.start


【解决方案1】:

删除string.Replace 方法并将Process.Start 更改为如下所示:

Process.Start(browserPaths[2], string.Format("\"{0}\"", chromeTempFilePath));

您只需将其全部用双引号括起来。这对我来说适用于 Chrome,但我没有检查其他浏览器。

【讨论】:

  • 这行得通,谢谢!我自己真的应该想到它,奇怪的是它适用于 Firefox 和 IE,但不适用于 Chrome。 (我会在 3 分钟内选择这个作为答案:))
  • 注意:Chrome 最近的一项更改引入了bug,从而打开路径中带有空格的本地文件将打开多个虚假标签,每个标签对应一个空格分隔的部分。即使您将整个路径用引号括起来,也会发生这种情况。此问题已修复(至少从 86.0.4240.75 开始)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多