[英]How to get real filename from a url in C#?
我想从下载管理器应用程序的URL中获取文件名。 我知道要使用Uri.AbsolutePath
或Path.GetFileName
来获取它,但是这些方法对于某些URL不能提供良好的结果。
例如,在此链接中 , 真实名称为WinRAR 5.40 Final TR.zip ,但Path.GetFileName
将其命名为zjESdHoqm?key = 035db62f2375981abf05c615955812a72d5f2701 ,这是一个奇怪的名称。
此链接也没有重定向。 它直接包含文件。 所以我想问,有没有一种确切的方法来在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/zh-cn/library/system.uri.absolutepath.aspx
Request.Url.AbsolutePath
AbsolutePath属性包含服务器用来解析信息请求的路径信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.