![]() |
Eine bemerkung noch von mir.
In der TSearchRec Struktur sind Win32FindData Handles des OS gespeichert. Nach einem erfolgreichen FindFirst() sind diese Handles vom OS korrekt initialisiert. In einigen Delphiversionen wird durch die RTL diese Handles aber nicht initialisiert, sie zeigen ins Nirwana. Sollte nun FindFirst() unter dieser RTL fehlschlagen und nachfolgend FindClose() aufgerufen werden, so greift das OS auf ungültige Handles zu. Folge: Zugriffsverletzungen in Kernel32.dll. Fazit: FindClose() nur aufrufen wenn FindFirst() = 0, also
Delphi-Quellcode:
Gruß Hagen
procedure Scan(const Path: String);
var SR: TSreachRec; begin if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then try repeat if (SR.Attr and faDirectory <> 0) and (SR.Name <> '.') and (SR.Name <> '..') then begin // Directory, rekursiver Aufruf hier Scan(Path + SR.Name + '\'); end else begin // Datei, VolumeID etc. end; until FindNext(SR) <> 0; finally FindClose(SR); end; end; [Edit=Sakura]Siehe Hagens nächstes Posting ;-)[/Edit] |
Irgendwie bekomme ich die Formatierung nicht hin
|
Einerseits waren die Tags falsch geschachtelt, andererseits hattest Du die Option "BBCode in diesem Beitrag deaktivieren" eingeschaltet.
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz