2011-05-04 78 views
1

我不習慣使用遠程資源,所以也許這個問題很微不足道,但我不知道如何實現它。如何從http鏡像創建System.Drawing.Image

我需要加載放置在http文件夾中的圖像集合,例如http://www.myexsamplesite.com/images

在這個目錄裏面我可以有不同名字的N張圖片。

我需要在WinForms應用程序(在ListView中)顯示這些圖像。

我正在研究的另一種方法是將圖像下載到tmp目錄,然後從我的WinForms應用程序的磁盤中加載它們。我正在使用以下內容:

WebClient fileReader = new WebClient(); 
fileReader.DownloadFile(imageAddress, filePath); 

將文件下載到磁盤。我的問題是:

我該如何下載全部 http文件夾中的文件?我想我需要枚舉文件夾中的文件,然後一對一下載。

第二個問題也是最重要的。我相信有更好的機制來完成這項任務。所以:

有沒有其他方法可以將http映像內容轉換爲System.Drawing.Image

請記住,我需要獲取http文件夾中的所有文件。

在此先感謝

回答

3

首先,讓所有的文件,你需要一種方法來一一列舉。 HTTP沒有任何方法可以讓你下載整個目錄,或者在技術上甚至列出目錄中的內容。一些網絡服務器設置爲向您發送預定義的網頁,該網頁在缺少默認頁面時顯示目錄中的文件列表,但不是全部。您可以解析該內容以獲取需要下載的文件列表。否則,你需要找到一種方法來基於Web應用程序本身以編程方式獲取該信息。我記得,其次,您可以從stream加載image。您可以使用HttpWebRequest,而不是使用WebClient,以便訪問內容流並將其提供給您的構造函數。不過,我認爲使用臨時目錄並從那裏加載文件可能會更好/更容易。從這樣的網絡流中加載東西時,有時會出現意想不到的事情(例如,帶動畫的GIF圖像流試圖保持打開狀態以不斷讀取動畫的幀),這可能會在您偶然的時候導致異常不準備調試和理解蝙蝠。

最後要注意,你只會使用mime type這裏確認您的內容爲圖像 - 讓你明確地將負載的東西是MIME類型application/octet-streamimage對象 - 但只有一樣東西image/jpegimage/gifimage/png等。