用WebBrowser打开网页后,然后提取里面图片链链接,然后用WebClient保存,怎样直接从缓存读取图片的,不必再次下载?
解决方案 »
- c# 整数加法计算机
- C#程序出现faulting module unknown
- checkbox控件的 checkstate 属性如何赋值呀?
- dropdownlist 未将对象引用设置到对象的实例?
- 外包 or 自行开发 ,公司该如何选择业务管理软件?
- 新手求助
- 在线人数统计 sql
- .net richtextbox中插入gif后,怎么对gif进行操作,就像qq的表情管理
- 下面是一个pop3接收类的一个方法。老外的。接收回来的是乱马。如何用中文编码。谢谢
- System.Timers.Timer和System.Windows.Form.Timer狂吃内存的问题
- webbrowser如何捕获到"找不到网页"或者"link error 404"事件
- 并发机制
How to access Temporary Internet Files to get a file
http://www.codeproject.com/csharp/ponta.asp
http://www.codeproject.com/csharp/WebCacheTool.asp
http://www.codeproject.com/csharp/WebCacheTool.asp?df=100&forumid=272203&exp=0&select=1416696
public struct INTERNET_CACHE_ENTRY_INFO
{
public int dwStructSize;
public IntPtr lpszSourceUrlName;
public IntPtr lpszLocalFileName;
public int CacheEntryType;
public int dwUseCount;
public int dwHitRate;
public int dwSizeLow;
public int dwSizeHigh;
public FILETIME LastModifiedTime;
public FILETIME ExpireTime;
public FILETIME LastAccessTime;
public FILETIME LastSyncTime;
public IntPtr lpHeaderInfo;
public int dwHeaderInfoSize;
public IntPtr lpszFileExtension;
public int dwExemptDelta;
} [DllImport("wininet.dll", SetLastError=true, CharSet=CharSet.Auto)]
public static extern IntPtr FindFirstUrlCacheEntry([MarshalAs(UnmanagedType.LPTStr)] string UrlSearchPattern, IntPtr lpFirstCacheEntryInfo, ref int lpdwFirstCacheEntryInfoBufferSize); [DllImport("wininet.dll", SetLastError=true, CharSet=CharSet.Auto)]
public static extern bool GetUrlCacheEntryInfo([MarshalAs(UnmanagedType.LPTStr)] string lpszUrlName, IntPtr lpCacheEntryInfo, ref int lpdwCacheEntryInfoBufferSize );
//获取url对应cache文件
public static string GetCatchFileName(string url)
{
int nNeeded = 0;
FindFirstUrlCacheEntry(null, IntPtr.Zero, ref nNeeded);
IntPtr buf = Marshal.AllocHGlobal(nNeeded);
try
{
GetUrlCacheEntryInfo(url, buf, ref nNeeded);
INTERNET_CACHE_ENTRY_INFO CacheItem = (INTERNET_CACHE_ENTRY_INFO)Marshal.PtrToStructure(buf, typeof(INTERNET_CACHE_ENTRY_INFO));
return Marshal.PtrToStringAuto(CacheItem.lpszLocalFileName);
}
finally
{
Marshal.FreeHGlobal(buf);
}
}
先看看资料。