Wininetdll函数库:根据url获取缓存文件
using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;namespace ConsoleApplication34{ class Program { 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; } public static extern IntPtr FindFirstUrlCacheEntry( string urlsearchpattern, IntPtr lpfirstcacheentryinfo, ref int lpdwfirstcacheentryinfobuffersize); public static extern bool GetUrlCacheEntryInfo( string lpszurlname, IntPtr lpcacheentryinfo, ref int lpdwcacheentryinfobuffersize); public static string getcatchfilename(string url) { int nneeded = 0, nbufsize = 0; IntPtr buf = IntPtr.Zero; FindFirstUrlCacheEntry(null, IntPtr.Zero, ref nneeded); nbufsize = nneeded; buf = Marshal.AllocHGlobal(nbufsize); internet_cache_entry_info cacheitem; GetUrlCacheEntryInfo(url, buf, ref nneeded); cacheitem = (internet_cache_entry_info)Marshal.PtrToStructure(buf, typeof(internet_cache_entry_info)); string res = Marshal.PtrToStringAuto(cacheitem.lpszlocalfilename); return (res); } static void Main(string[] args) { string str = getcatchfilename("http://profile.csdn.net/jinjazz/picture/2.jpg"); Console.WriteLine(str); Console.Read(); } }}
页:
[1]