Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: FindFirst usw unterschlagen Verzeichnisse

  Alt 12. Jan 2004, 16:17
  • findnext(verzeichnisse); ist zuviel, dadurch wird das 2. Verzeichnis übersprungen.
  • verzeichnisse.Attr = 16 hierdurch wird jedes Verzeichnis übersprungen, das ausser dem Verzeichnisattribut noch andere hat. (z.B. das Archiv-, Systemattribut... - daher "(verzeichnisse.Attr and faDirectory) <> 0" oder "(verzeichnisse.Attr and faDirectory) = faDirectory")
  • (verzeichnisse.Name <> '.') and (verzeichnisse.Name <> '..' überspringt 2 Verzeichnisse, die keine Unterverzeichnisse sind.
Code:
procedure TForm1.ButtonClick(Sender: TObject);
var verzeichnisse: TSearchRec;
begin
if findfirst(root.Text + '*', fadirectory, verzeichnisse) = 0 then
  begin
    listenmemo.Lines.add(verzeichnisse.name);
    repeat
    [color=red]findnext(verzeichnisse);[/color]
    if [color=red]verzeichnisse.Attr = 16[/color] then
    listenmemo.Lines.add(verzeichnisse.name);
    until findnext(verzeichnisse) <> 0;
  end;
findclose(verzeichnisse);
end;
Delphi-Quellcode:
Procedure TForm1.ButtonClick(Sender: TObject);
  Var verzeichnisse: TSearchRec;

  Begin
    If FindFirst(root.Text + '*', fadirectory, Verzeichnisse) = 0 Then Begin
      Repeat
        If ((verzeichnisse.Attr and faDirectory) <> 0) and
          (verzeichnisse.Name <> '.') and (verzeichnisse.Name <> '..') Then
          listenmemo.Lines.Add(verzeichnisse.name);
      Until FindNext(verzeichnisse) <> 0;
    FindClose(verzeichnisse);
  End;
$2B or not $2B
  Mit Zitat antworten Zitat