先看这两个函数//取操作系统设置的路径 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;
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;
应该是 IETempPath := GetFolderDir(32);
1、vItemIDList: PItemIDList;[PItemIDList未知]
2、IETempPath := GetFolderDir(32);[GetFolderDir未知]
谢谢“kiboisme(还是铁棒.....针) ”
接分!