2011-05-04 43 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等。