2011-10-13 238 views

回答

10

爲什麼Path.GetExtension不適合你?

編輯
啊,所以你的網址沒有指定你的擴展名。這意味着任何東西都可能在它後面。

只需檢查url的字符串值,就看不到它後面會有什麼。您的(第二個)示例指向(最終)一個.gif文件,但它也可能是.jpg,.doc(甚至是.exe)。

您將需要做一個webrequest,看看你回來。通常你可以嘗試一個HEAD來獲取標題(並檢查內容類型),但我認爲這不會起作用。試試Fiddler看看你回來了什麼,然後你可以改進你的問題。

+0

這是否可以在網站上使用? – musefan

+1

'Path.GetExtension(「http://www.someserver.com/image.gif」)'returns「.gif」 –

+0

啊是的,這將工作,但它不會給出的例子...我以爲你有發現一個超級棒的功能,然後,我等着非常感動:D – musefan

0

你可以將字符串分割爲char'。'並獲得了最後一個字符串返回數組中..

+0

no.this url文件名是hash.filename = 02912bb889cb24 – ashkufaraz

+0

如果字符串中沒有文件擴展名,那麼這個例子不是。不是 – musefan

+0

不明顯,因爲這個例子是一個失敗......這是怎麼回事? – Rob

6

檢查出在這裏:

http://www.java2s.com/Code/CSharp/Network/GetHTTPResponseheaders.htm

你會有興趣這應該給你一些像「圖像/ GIF」了的response.ContentType gif圖片

+0

這取決於設置的內容頭。鑑於asp.net標籤,我會想象@Curt的答案是更正確的,而且需要的是實際在asp中應用內容類型。 – stevenrcfox

+0

@Overflow,我知道它需要服務器在處理該URL調用時需要設置內容類型。我的假設是,該URL用於提供文件下載(如URL本身所建議的),並且很可能服務器將返回僅包含圖像的響應流,並因此設置了內容類型。當然,內容類型可能是錯誤的,這取決於實現。但要做到這一點,實施應提供正確的內容類型,因此我的答案將能夠找出文件類型 – musefan

1

此URL似乎可能鏈接到將爲文件下載的頁面。

02912bb889cb24可能是該文件的數據庫引用。

因此沒有獲得任何API爲這個系統,我不認爲它可以在所有制定出通過該URL訪問的文件的擴展名

+0

我傾向於認爲這是最準確的答案,有幾個補充,1.當文件上傳時,您應該能夠獲得內容類型並將其保存到數據庫與文件。然後下載文件時,您應該能夠再次設置內容類型。 – stevenrcfox

4

試試這個

string path = @"http://www.iranfairco.com/download-file/02912bb889cb24.gif"; 
string e = Path.GetExtension(path); 
+0

url等於29493903並不等於290930232.gif – ashkufaraz