2

ac# Windows フォームから Chrome の外部インスタンスを起動しようとしています。ローカルの html ファイルのパスにスペースが含まれていない限り、問題なく動作します。ある場合でも、Chrome は最初のスペースで停止します。例: "file:///C:/Users/user/Documents/Visual" Chrome が通常行うように、文字列内のスペースを "%20" に置き換えて、これを修正しようとしました。今、私はこの文字化けしたアドレスを取得します: "file:///C:/Users/user/Documents/Visual%2520Studio%2520%2012/TEMP.html"

これが私のコードのスニペットです:

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

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

Process.Startパスにスペースがある場合、Firefox と IE 9 の両方で正常に動作します。私は多かれ少なかれ困惑しているので、どんな助けも大歓迎です!

4

1 に答える 1

3

メソッドを削除し、次のようstring.Replaceに変更します。Process.Start

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

すべてを二重引用符で囲むだけです。これはChromeでうまくいきましたが、他のブラウザはチェックしませんでした.

于 2012-11-23T17:16:54.120 に答える