Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
Delphi 12 Athens
|
Re: FindFirst usw unterschlagen Verzeichnisse
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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
|
|
Zitat
|