2011-11-02 51 views
2

提取編碼/重寫網址文件名怎樣在C#提取編碼/重寫網址文件名等 http://download.mozilla.org/?product=firefox-8.0b5&os=win&lang=en-US我如何在C#

Uri uri = new Uri(textBox1.Text); 
string filename = Path.GetFileName(uri.LocalPath); 

上面的代碼返回空值。

+0

什麼Dijkstra的名字是你想怎麼辦??? – neeKo

+0

@NikoDrašković如果你點擊上面的鏈接,它會提示你保存'Firefox Setup 8.0b5.exe'。海報是問如何通過C#獲取該文件的名稱。 –

+0

是你使用哪個url返回空的?如果不是,那麼你可以舉一個空的東西的例子。看來你的問題是類似於這個問題http://stackoverflow.com/q/4096929/462285它可能有些幫助 – nbz

回答

3

既然問題已經明確,試試這個作爲一個答案。

string url = "http://download.mozilla.org/?product=firefox-8.0b5&os=win&lang=en-US"; 
WebRequest req = WebRequest.Create(url); 
var res = req.GetResponse(); 
var fileUri = res.ResponseUri; 

返回了fileURI類似於:

http://pv-mirror02.mozilla.org/pub/mozilla.org/firefox/releases/8.0b5/win32/en-US/Firefox%20Setup%208.0b5.exe 
0

我親自把它放到網絡瀏覽器控件中,等待它加載,當它準備就緒時,我從網頁瀏覽器控件中獲取網址。

如果我理解正確。

+0

請你可以建議我一些幫助代碼? –

+0

創建一個web瀏覽器控件(來自工具箱) 'webbrowser1.url = new url(「your url here」); 公共WebBrowser1onDocumentLoad(....){ 如果(webbrowser1.readyState ==就緒){ 串myurl = webbrowser1.url; } }' – Haedrian

-1

我不知道這個輸出是多麼有用,但是:

string url = "http://download.mozilla.org/?product=firefox-8.0b5&os=win&lang=en-US"; 
string name = Path.GetFileName(url); 

返回

"?product=firefox-8.0b5&os=win&lang=en-US" 
+0

如果你點擊上面的鏈接,保存對話框會提示你保存'Firefox Setup 8.0b5.exe'海報問你如何得到那個文件名。 –

+0

考慮到這個問題並不清楚,我不知道我應該得到一個downvote。他詢問關於從Uri獲取文件名稱。 –

+0

由於他的原始解決方案是解析給出的示例Uri的方向,我認爲我發佈的內容非常合理。 –