如何在c#中从url获取真实的文件名
本文关键字:获取 真实 文件名 url 中从 | 更新日期: 2023-09-27 18:17:26
我想从下载管理器应用程序的url获取文件名。我知道使用Uri.AbsolutePath
或Path.GetFileName
来获得它,但这些方法对某些url不能给出好的结果。
例如,在这个链接中,实际名称是WinRAR 5.40 Final TR.zip,但Path.GetFileName
给出它为zjESdHoqm?Key = 035db62f2375981abf055c615955812a72d5f2701 是一个陌生的名字。
这个链接也没有重定向。它直接包含文件。所以我想问,是否有一个确切的方法来获得正确的文件名在c# ?
更新:我已经计算出链接过期。很抱歉。但我找不到其他URL来解释我的问题。
如果你想测试我的问题,你可以从这个页面更新url。
我自己找到了一个很好的解决方案。
public static string getFileName(string url)
{
HttpWebRequest req = RequestSender.SendRequest(url);
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
string header_contentDisposition = resp.Headers["content-disposition"];
string escaped_filename = new ContentDisposition(header_contentDisposition).FileName;
return Uri.UnescapeDataString(escaped_filename);
}
最后,文件名是正确的。谢谢大家的帮助。
你的链接坏了(404),但你可以看看这个:https://msdn.microsoft.com/en-us/library/system.uri.absolutepath.aspx
Request.Url.AbsolutePath
AbsolutePath属性包含路径信息服务器用来解析对信息
的请求