繁体   English   中英

如何从C#中的URL获取真实文件名?

[英]How to get real filename from a url in C#?

我想从下载管理器应用程序的URL中获取文件名。 我知道要使用Uri.AbsolutePathPath.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM