簡體   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