2016-11-11 10 views
0

ダウンロードマネージャアプリケーション用のURLからファイル名を取得します。私はUri.AbsolutePathまたはPath.GetFileNameを使用して取得することを知っていますが、これらの方法ではいくつかのURLでは良い結果が得られません。例えばC#のURLから実際のファイル名を取得するには?

は、このlinkで本名はWinRARの5.40決勝TR.zipですが、Path.GetFileNamezjESdHoqm?キー= 035db62f2375981abf05c615955812a72d5f2701奇妙な名前であるとして、それを提供します。

このリンクにはリダイレクトもありません。それはファイルを直接含んでいます。だから私は尋ねたい、C#で正しいファイル名を得るための正確な方法はありますか?

更新日:リンクの有効期限が切れていることがわかりました。そのために残念。しかし私は私の問題を説明するために他のURLを使うことはできませんでした。

問題をテストする場合は、このpageからURLを更新することができます。

+0

http://stackoverflow.com/questions/1105593/get-file-name-from-urstring-in-c-sharpの重複はありますか? – 5arx

+0

あなたのリンクでこのメソッドを試しましたが、今度は 'zjESdHoqm'を出します。だから私が望むものではありません。 –

+0

これらのファイルはどこにありますか? – 5arx

答えて

0

あなたのリンクは(404)壊れていますが、この時に見えるかもしれません: https://msdn.microsoft.com/en-us/library/system.uri.absolutepath.aspx

Request.Url.AbsolutePath

AbsolutePathプロパティは サーバが解決するために使用するパスの情報が含まれています情報の要求

+0

リンクが切れているようです。そのために残念。 URLはhttps://cloud.mail.ru/public/EBvc/zjESdHoqmから取得され、そのアドレスから更新できます。 –

1

私は自分自身で良い解決策を見つけました。

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); 
} 

最後に、ファイル名は正しいです。みんなありがとうございました。

関連する問題