Lista plików na dysku ...

0

Jak zrobić listę wszystkich plików EXE lub COM, znajdujących się na danym dysku ?
Oczywiście w podfolderach też...

Pozdrawiam {browar} .

0

miszczu poszukaj w gotowcach :P :)---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

Miszczu ze 4 razy umieszczalem na tym forum funkcje robiaca ta wystarczylo se zmodyfikowac maske na *.exe a potem na *.com.

function Szukaj(Czego, Gdzie: String): String;
var
tmp: string;
n: Integer;
Katalogi: TStringList;

function FindIt(Dir, Maska: String; Rodzaj: Integer) : String;
var
Found : Integer;
SR: TSearchRec;
L: TStringList;
begin
L := TStringList.Create;
try
if Dir[Length(Dir)]&lt&gt '\' then Dir:= Dir + '\';
Found := FindFirst(Dir + Maska, Rodzaj, SR);
while ( Found = 0 ) do
begin
if (SR.Name &lt&gt '.') and (SR.Name &lt&gt '..') then
L.Add(Dir + SR.Name);
Found := FindNext(SR);
end;
finally
FindClose(SR);
end;
Result:=L.Text;
L.Free;
end;

begin
Katalogi:=TStringList.Create;
Tmp:=FindIt(Gdzie,Czego,faAnyFile);
Katalogi.Text:=FindIt(Gdzie,'.',faAnyFile and faDirectory);
for n:=0 to Katalogi.Count-1 do
begin
Tmp:=Tmp+#13+Szukaj(Czego,Katalogi.Strings[n]);
end;
Katalogi.Clear;
Katalogi.Text:=Tmp;

  • usuwanie pustych linijek - czasem sie zdarzaja
    while Katalogi.IndexOf()&gt=0 do begin Katalogi.Delete(Katalogi.IndexOf());
    end;

  • usuwa katalogi z listy zeby zostaly pliki
    for n:=Katalogi.Count-1 downto 0 do
    begin
    if DirectoryExists(Katalogi.Strings[n]) then Katalogi.Delete(n);
    end;
    Result:=Katalogi.Text;
    Katalogi.Free;
    end;

PS funkcja nie jest extra-super ale dziala :)--sys:&gt logout....

0

Dzięki {browar}

1 użytkowników online, w tym zalogowanych: 0, gości: 1