procedure TForm1.GetAllFiles(MainPath: String);
var
  nI: Integer;
  SearchRec: TSearchRec;
  sFileName: String;
  sMainpath: String;
begin  if MainPath[Length(MainPath)]='\' then  sMainpath:=MainPath
  else sMainpath:=MainPath+'\';
  FindFirst(sMainPath+'*.*',faAnyFile,SearchRec);
  if SearchRec.Name<>'' then
  begin
    sFileName:=UpperCase(SearchRec.Name);
    if (Pos('.ZIP',sFileName)=Length(sFileName)-3) then
      Listbox1.Items.Add(sMainPath+SearchRec.Name);
    if (SearchRec.Attr and faDirectory)=1 then
      if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
        GetAllFiles(sMainPath+SearchRec.Name);
    while  (FindNext(SearchRec)=0) do
    begin
      sFileName:=UpperCase(SearchRec.Name);
      if (Pos('.ZIP',sFileName)=Length(sFileName)-3) then
        listbox1.Items.Add(sMainPath+SearchRec.Name);
      if (SearchRec.Attr and faDirectory)=faDirectory then
        if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
          GetAllFiles(sMainPath+SearchRec.Name);
    end;
  end;end;