在C#问题的浏览器中使用查询字符串调用htm文件

时间:2012-07-16 15:51:41

标签: c# browser query-string

我们正在尝试从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);

网址应为

格式

文件:/// d:/Projects/Tester/bin/Debug/Content/player.htm名称=促销[39171369900] .theora.ogv

但是当firefox浏览器打开时,它在地址栏中有以下内容:

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

既然?和[]在浏览器中打开时进行网址编码,无法播放视频。如果替换了%3F和%5B%5D,则文件将正常播放。

任何人都可以提供任何帮助。

2 个答案:

答案 0 :(得分:0)

请使用Server.UrlDecode方法解码您的网址

或尝试使用System.Uri.UnescapeDataString

答案 1 :(得分:0)

为了回答我自己的问题,我终于使用批处理文件解决了问题,打开htm文件并从C#app调用批处理,将文件名作为参数传递给批处理。谢谢你的帮助。