# Dateien mit Delphi auf der ganzen Festplatten



## Chefprog (27. Mai 2001)

Hey, Leute, weiß jemand wie ich dem befehle filesearch beibringe, dass er die angegebe Datei auf der ganzen Festplatte sucht??
Bitte helft mir!!! BITTTTEEEEEEEEEEEEEEEEEEE!!!!!!!!!!!!! *verzweifel*


----------



## Gendo (27. Mai 2001)

*Datei Suchen...*

Hi Chefprog,
Wenn... du eine Datei suchst z.B. "*Such_mich.txt*" und den genauen Pfad dazu haben willst probiers mal hiermit:


```
function suchdatei(pfad,datei:string): string;

var
  sr: TSearchRec;

begin

  result:= '';
  if findfirst(pfad+'*.*',$27,sr)=0 then
    repeat
      if ansilowercase(sr.name)=ansilowercase(datei) then
        begin
          result:= pfad+datei;
          break;
        end;
    until findnext(sr)<>0;
  FindClose(Sr);
  end;

function finden(start,datei:string): string;

var
  sr: TSearchRec;
  hlp: string;

begin

  if ansilastchar(start)<>'\' then
    start:= start+'\';
    result:= suchdatei(start,datei);
  if result <> '' then exit;
  if findfirst(start+'*.*',faAnyfile,sr)=0 then
    begin
      repeat
        if (sr.Attr and faDirectory > 0)and(sr.name[1]<>'.') then
          begin
            hlp:= start+sr.name;
            result:= finden(hlp,datei);
            if result <> '' then
            break;
          end;
      until findnext(sr)<>0;
   FindClose(Sr);
   end;
end;
```

In *Edit1* steht der Dateiname!
So jetzt kommt der Teil wo du den Button drückst:


```
procedure TForm1.Button1Click(Sender: TObject);

var
  Ergebnis,Startverzeichnis,Dateiname: string;

begin

  Startverzeichnis:= 'C:';
  Dateiname:=Edit1.Text;
  Ergebnis:= finden(Startverzeichnis,Dateiname);
  if Ergebnis <> '' then
    begin
      Showmessage('Datei gefunden in:'+#13+Ergebnis);
      Edit1.Text:= '';
    end
  else
    begin
      Showmessage('Datei nicht gefunden');
      Edit1.Text:= '';
    end;
end;
```

Es kann gut sein das Fehler enthalten sind da ich das jetzt so schnell hier gemacht hab. Müsste aber klappen.

Ich hoffe ich konnte dir helfen


----------

