0

C# コンソール アプリから Firefox ブラウザーで htm ファイルを開こうとしています。htm ファイルは、ビデオ ファイルの名前をクエリ文字列パラメーターとして受け取ることになっているため、ファイルをブラウザーで再生できます。これで、ビデオ ファイルと htm の両方が C# コンソール アプリに対してローカルになります。

次のコードを使用しました。

var playerFile = Path.Combine(folderPath, "player.htm");
var medianame = Path.GetFileNameWithoutExtension(mediaFilename) + ".theora.ogv";
var url = string.Format("{0}?name={1}", playerFile, medianame);
System.Diagnostics.Process.Start(@"C:\Program Files (x86)\Mozilla Firefox\firefox.exe", url);

URLは次の形式である必要があります

file:///D:/Projects/Tester/bin/Debug/Content/player.htm?name=Promo[39171369900].theora.ogv

ただし、Firefox ブラウザを開くと、アドレス バーに次のように表示されます。

file:///D:/Projects/Tester/bin/Debug/Content/player.htm%3Fname=Promo%5B39171369900%5D.theora.ogv

以来?と [ ] は、ブラウザで開いたときにエンコードされた URL を取得しているため、ビデオを再生できません。%3F と %5B %5D が置き換えられると、ファイルは正しく再生されます。

誰でも助けてもらえますか。

4

2 に答える 2

0

私自身の質問に答えるために、私は最終的にバッチファイルを使用してhtmファイルを開き、C#アプリからバッチを呼び出し、ファイル名を引数としてバッチに渡して問題を解決しました。ご協力ありがとうございます。

于 2012-07-18T08:48:38.687 に答える
0

Server.UrlDecode メソッドを使用して URL をデコードしてください

または、System.Uri.UnescapeDataStringを使用してみてください

于 2012-07-16T15:56:45.273 に答える