如何在C#中处理带有额外参数的文件的路径?

时间:2011-10-12 19:53:56

标签: c# .net path

我正在从我的应用程序内部的Internet下载文件。现在我正在处理多种文件类型,因此我需要能够在应用程序可以继续之前检测文件的文件类型。我遇到的问题是,从中下载文件的一些URL包含额外的参数。

例如:

http://www.myfaketestsite.com/myaudio.mp3?id=20

最初我使用String.EndsWith()。显然这不再起作用了。有关如何检测文件类型的任何想法吗?

2 个答案:

答案 0 :(得分:3)

将网址包裹在Uri课程中。它会将其拆分为您可以使用的不同段,或者您可以使用Uri类本身的辅助方法:

var uri = new Uri("http://www.myfaketestsite.com/myaudio.mp3?id=20");
string path = uri.GetLeftPart(UriPartial.Path);
// path = "http://www.myfaketestsite.com/myaudio.mp3"

您的问题与以下内容重复:

答案 1 :(得分:0)

您可以随时拆分问号以消除参数。 e.g。

string s = "http://www.myfaketestsite.com/myaudio.mp3?id=20";
string withoutQueryString = s.Split('?')[0];

如果不存在问号,则无关紧要,因为您仍然会从零索引中获取值。然后,您可以在withoutQueryString字符串上执行逻辑。