在Delphi中,如何删除IE缓存中指定格式的文件,如*.gif文件,其它文件不能删还有一个问题,如果解决了另开帖给分:
如何监视一个应用程序的打开和运行,即如果该应用程序正在打开或已经打开,程序就做出反应?(以上问题都需要代码)
谢谢……

解决方案 »

  1.   

    先看这两个函数//取操作系统设置的路径
    function GetSpecialFolderDir(mFolder: Integer): string;
    var
      vItemIDList: PItemIDList;
      vBuffer: array[0..MAX_PATH] of Char;
    begin
      SHGetSpecialFolderLocation(0, mFolder, vItemIDList);
      SHGetPathFromIDList(vItemIDList, vBuffer);  //转换成文件系统的路径
      Result := vBuffer;
      Result := Result + '\';   // CSIDL_BITBUCKET
    end;//搜索文件名
    Function SearchFileS(SPath,Filter:String;InChildDir : Boolean ; var StrLS : TStringList ) : Boolean;
    var
      i: Integer;
      SearchRec: TSearchRec;
      FileName : String;
    begin
      Result := True;
      if copy(Spath,Length(Spath),1)<>'\' then SPath := SPath+'\';
      try
        i:=FindFirst(SPath+Filter,faAnyFile,SearchRec);
      except
        Result := False;
        exit;
      end;
      while i=0 do begin
        FileName := SearchRec.name;
        if Fileexists(SPath+FileName) then StrLS.Add(SPath+FileName)
        else if (FileName<>'.') and (FileName<>'..') then
           begin
             if InChildDir then  SearchFileS(SPath+FileName,Filter,InChildDir,StrLS)
             else StrLS.Add(SPath+FileName); 
           end
        else if FileName='..' then StrLS.Add(SPath);
        i := FindNext(SearchRec);
      end;
      try
        i:=FindFirst(SPath+'*.*',faDirectory,SearchRec);
      except
        Result := False;
        exit;
      end;
      while i=0 do begin
        FileName := SearchRec.name;
        if Fileexists(SPath+FileName) then 
        else if (FileName<>'.') and (FileName<>'..') then
           begin
             if InChildDir then  SearchFileS(SPath+FileName,Filter,InChildDir,StrLS)
             else StrLS.Add(SPath+FileName); 
           end;
    //    else if FileName='..' then StrLS.Add(SPath);
        i := FindNext(SearchRec);
      end;
      
    end;
    下面是程序:
    var
      StrList : TStringList;
      i : integer;
      IETempPath : String;
    begin
      StrList := TStringList.Create;
      IETempPath := GetFolderDir(21);
      SearchFileS(IETempPath,'*.gif',True,StrList);
      for i:=0 to StrList.Count-1 do
        if FileExists(StrList.Strings[i]) then
          DeleteFile(StrList.Strings[i]);
      StrList.Free;
    enddo
    end;
      

  2.   

    更正:
    应该是  IETempPath := GetFolderDir(32);
      

  3.   

    不行啊,老兄,调试时出现以下错误:
    1、vItemIDList: PItemIDList;[PItemIDList未知]
    2、IETempPath := GetFolderDir(32);[GetFolderDir未知]
      

  4.   

    用别的方法把问题解决了
    谢谢“kiboisme(还是铁棒.....针) ”
    接分!