- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我不习惯使用远程资源,所以这个问题可能很简单,但我不确定如何实现它。
我需要加载一组放置在 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 文件夹中的所有文件。
提前致谢
最佳答案
首先,要获取所有文件,您需要一种枚举它们的方法。 HTTP 没有任何方法可以让您下载整个目录,或者在技术上什至列出目录中的内容。某些网络服务器设置为向您发送一个预定义的网页,该网页在缺少默认页面时显示目录中的文件列表,但并非所有页面都是。您可以解析该内容以获取需要下载的文件列表。否则,您将需要找到一种方法,根据 Web 应用程序本身以编程方式获取该信息。
其次,我记得您可以从流
加载图像
。您可以使用 HttpWebRequest
而不是使用 WebClient
,这样您就可以访问内容流,并将其提供给您的构造函数。但是,我认为使用临时目录并从那里加载文件可能更好/更容易。像这样从网络流加载内容时,有时可能会发生意想不到的事情(例如,试图保持打开带有动画的 GIF 图像流以持续读取动画帧),这可能会在奇怪的时候导致异常,您可能不准备立即进行调试和理解。
最后,请注意,您只会在此处使用 mime 类型
来验证您的内容是否为图像 - 因此您明确不会加载 mime 类型的内容 application/octet-stream
到 image
对象中 - 但只有 image/jpeg
, image/gif
, image/png
等
关于c# - 如何从 http 图像创建 System.Drawing.Image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5881394/
我是一名优秀的程序员,十分优秀!