procedure findall(disk,path: String; var fileresult: Tstrings); 
var 
  fpath: String; 
fs: TsearchRec; 
begin 
  fpath:=disk+path+'\*.*'; 
  if findfirst(fpath,faAnyFile,fs)=0 then 
  begin 
    if (fs.Name<>'.')and(fs.Name<>'..') then 
      if (fs.Attr and faDirectory)=faDirectory then 
         findall(disk,path+'\'+fs.Name,fileresult) 
      else 
         fileresult.add(disk+strpas(strupper(pchar(path)))+'\'+strpas(strupper(pchar(fs.Name)))+'('+inttostr(fs.Size)+')'); 
   while findnext(fs)=0 do 
   begin 
     if (fs.Name<>'.')and(fs.Name<>'..') then 
       if (fs.Attr and faDirectory)=faDirectory then 
          findall(disk,path+'\'+fs.Name,fileresult) 
       else 
          fileresult.add(disk+strpas(strupper(pchar(path)))+'\'+strpas(strupper(pchar(fs.Name)))+'('+inttostr(fs.Size)+')'); 
    end; 
  end; 
  findclose(fs); 
end; 
listbox.items:=fileresult;