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

本文关键字:参数 路径 文件 处理 | 更新日期: 2023-09-27 18:11:10

我正在我的应用程序内部从互联网下载文件。现在我正在处理多种文件类型,所以我需要能够检测文件的文件类型,然后我的应用程序才能继续。我遇到的问题是,一些下载文件的url包含额外的参数。

例如:

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

最初我使用的是String.EndsWith()。显然这行不通了。对如何检测文件类型有什么想法吗?

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

Uri类包装URL。它将把它分成不同的段,你可以使用,或者你可以使用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"

你的问题是:

  • 截断查询字符串&返回干净的URL c# ASP.net
  • 获取url而不需要查询字符串

您总是可以在问号上分割以消除参数。例如

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

如果不存在问号,也没关系,因为您仍然会从0索引中获取值。然后,您可以对withoutQueryString字符串进行逻辑处理。