zoukankan      html  css  js  c++  java
  • Wininetdll函数库:根据url获取缓存文件

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    namespace ConsoleApplication34
    {
        class Program
        {
            [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 = 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();
            }
        }
    }
    
  • 相关阅读:
    几种 HtmlEncode 的区别
    Javascript 编程风格
    asp.net ckeditor 无法获取值
    Silverlight:Deep Zoom 文件格式概述
    js阻止浏览器的默认行为以及停止事件冒泡(用JQuery实现回车提交,兼容IE、FF浏览器)
    什么是 HTTP Headers?
    ServerVariables
    SQL Server 查询不重复id的数据记录
    因为安全原因,文件不可浏览. 请联系系统管理员并检查CKFinder配置文件
    浏览器鼠标手势原理简析
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204908.html
Copyright © 2011-2022 走看看