是不是有windows API函数可以直接完成该功能?

解决方案 »

  1.   

    IE只会缓存网页吧,还会缓存你要下载的文件??文件下载可以看URLDownloadtoFile函数,要引用UrlMon单元
      

  2.   

    只能从C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files下面搜索文件,这个可能比较复杂,首先得从网络解析数据包得到文件名称,然后搜索对应的文件
      

  3.   

    直接调用ie的接口或winnet来下载,就是这样的效果如果自己查ie的缓存目录,文件名会比真实文件名多“[1]”之类的字符串,而且如果有多个,也不好确认哪一个才是
      

  4.   


    uses
      wininet;  function GetLocalFileNameFromIECache(url:string): string;
      var
        D: Cardinal;
        T: PInternetCacheEntryInfo;
      begin
        result := '';
        D := 0;
        T:=nil;
        GetUrlCacheEntryInfo(PChar(Url), T^, D);
        Getmem(T, D);
        try
          if (GetUrlCacheEntryInfo(PChar(Url), T^, D)) then
            Result := T^.lpszLocalFileName
          else
            Result := '';
        finally
          Freemem(T, D);
        end;
      end;
      

  5.   


    调用:
      ShowMessage(GetLocalFileNameFromIECache('http://www.baidu.com/'));
      

  6.   

    我以前写过类似的代码,不过没有测试效率,一下子也找不到了.
    我觉得,如果是小文件比如网页上的小图片css,js之类的,可能直接下会更快一些.在数百兆的缓存里找文件到底有多快?
    XXX[1].jpg之类的,我是写一个循环处理来确认,一般不会超过10的.
      

  7.   

    有专门的API可以找到,为什么非得从文件找呢
    GetUrlCacheEntryInfo
      

  8.   

    GetUrlCacheEntryInfo这个API我知道,也用,不过,似乎确实还有[i]的问题.