搜索发现几个贴讲到这个问题,但没见到答案就是用IDHTTP.GET或UrlDownloadToFile多次下载同一个文件,只能得到的是第一次下载的文件而不是最新的文件,要清除IE临时文件才可以
 
请高手指教如何解决这个问题
难道要在程序中加上清除IE临时文件的功能?如果要清除IE临时文件如何做?
还是使用其他方法下载?以前提问过的大侠可有解决了问题?如果解决了请指点指点.

解决方案 »

  1.   

    仔细查查IDHttp的缓存相关设置,应该有这样的属性才对。
      

  2.   


    //用这个过程.ACanOverwrite:是否覆盖现有文件,默认是不能覆盖的
    procedure Get(const ASourceFile: string; const ADestFile: string; const ACanOverwrite: boolean = false; AResume: Boolean = false); overload;
      

  3.   

    不好意思!!!刚才看成FTP了
    ////////////////////////
    下面是我的代码,没有问题的
    procedure TUpdate.HttpDownLoad(aURL, aFile: string; bResume: Boolean);
    var
      tstream: TFileStream;
    begin
      if fileexists(aFile) then tstream := tFilestream.Create(aFile, fmopenwrite)
      else
        tstream := tfilestream.Create(aFile, fmcreate);
      try
        idhttp1.Request.ContentRangeStart := 0;
        try
          idhttp1.Get(aURL, tstream);
        except
          on e: EXCEPTION do
          begin
            application.MessageBox('升级被中断或出现错误,请下次升级', '系统提示', MB_Ok + MB_ICONERROR);
            raise;
          end;
        end;
      finally
        if tstream <> nil then tstream.Free;
      end;
    end;
      

  4.   

    可以用URLDownloadToCacheFile返回缓存的文件的路径……之后想读取还是想删除随意。