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);

网址应采用以下形式

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

请使用 Server.UrlDecode 方法来解码您的 url

或尝试使用System.Uri.UnescapeDataString

于 2012-07-16T15:56:45.273 回答
0

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

于 2012-07-18T08:48:38.687 回答