用API获取IE缓存文件

  [structlayout(layoutkind.sequential,   charset = charset.auto)]         
  
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       );   
  
public     static     string    getcatchfilename( string    url)   
  
{   
  
int   nneeded   =   0,   nbufsize;           
  intptr   buf;       
  findfirsturlcacheentry(   
null,   intptr.zero,   ref   nneeded   );     
  nbufsize   
=   nneeded;         buf   =   marshal.allochglobal(   nbufsize   );           
  geturlcacheentryinfo(url,buf,
ref   nneeded);       
  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);   
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值