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

如何在C#中处理带有额外参数的文件路径?,c#,.net,path,C#,.net,Path,我正在应用程序中从Internet下载文件。现在我要处理多个文件类型,因此我需要能够检测文件的文件类型,然后我的应用程序才能继续。我遇到的问题是,下载文件的一些URL包含额外的参数 例如: http://www.myfaketestsite.com/myaudio.mp3?id=20 最初我使用的是String.EndsWith()。显然,这已经不起作用了。知道如何检测文件类型吗?将URL包装在Uri类中。它将把它分成不同的段,您可以使用,或者您可以使用Uri类本身上的helper方法: va

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

例如:

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

最初我使用的是
String.EndsWith()
。显然,这已经不起作用了。知道如何检测文件类型吗?

将URL包装在
Uri
类中。它将把它分成不同的段,您可以使用,或者您可以使用
Uri
类本身上的helper方法:

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"
你的问题重复了以下内容:


将URL包装在
Uri
类中。它将把它分成不同的段,您可以使用,或者您可以使用
Uri
类本身上的helper方法:

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"
你的问题重复了以下内容:


您始终可以在问号上拆分以消除参数。e、 g

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

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

您可以始终在问号上拆分以消除参数。e、 g

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

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

我应该使用什么方法来完成此操作。我是否获取查询属性并将其从原始路径中删除?@loyalpenguin:如果使用上述代码,
path
变量将包含
http://www.myfaketestsite.com/myaudio.mp3
。我应该使用什么方法来完成此任务。我是否获取查询属性并将其从原始路径中删除?@loyalpenguin:如果使用上述代码,
path
变量将包含
http://www.myfaketestsite.com/myaudio.mp3
。解析的替代方法可能是Response.ContentType解析的替代方法可能是Response.ContentType