s场景是这样的,自己开发的一个客户端程序,可以用来保存从浏览器拷贝的网页数据,在浏览器中选中一大段网页,然后复制,粘贴到这个客户端程序,它就会把复制的整个网页保存到本地,现在对图片本地化采用的方式是从剪贴板中获取到所有图片路径,然后到网上将图片下载到本地。这样导致程序保存很慢。
为了提高保存速度,我就想对图片本地化的方式做下改进,目前的考虑是,既然浏览器已经把网页完整的展现出来了,那么图片字节流应该已经存在于本地或者内存中了,如果能够找到这些图片在本地存放的位置,那么就不需要从互联网上再把图片下载下来。不知道这个考虑有没有可行性,请大神们指点一下。或者对图片本地化给些其他的思路~~~
------解决方案--------------------
C#读取IE的Cache
http://www.web521.com/web/567968/T652930.shtml
------解决方案--------------------
System.Collections.Specialized.StringCollection fileList = Clipboard.GetFileDropList();//获得文件名
if (fileList.Count > 0)
{
cmsMain.Enabled = false;
Thread thread = new Thread(new ParameterizedThreadStart(SaveBrowserPic));
thread.IsBackground = true;
thread.Start(fileList[0]);//复制的图片本地文件路径
}
else if (Clipboard.ContainsImage())
{
Thread thread = new Thread(new ParameterizedThreadStart(SaveBrowserPic2));
thread.IsBackground = true;
thread.Start(Clipboard.GetImage());//保存内存中图片
Clipboard.Clear();
}
else
{
MessageBox.Show("抱歉,无法获取当前图片相关信息!");
}
private void SaveBrowserPic(object filePath)
{
FileInfo fi = new FileInfo(filePath.ToString());
byte[] imageData = new byte[fi.Length];
fs = fi.OpenRead();
fs.Read(imageData, 0, Convert.ToInt32(fi.Length));
}
private void SaveBrowserPic2(object image)