![]() |
Problem mit FindNext und FindClose
Hi Leute,
in einem Thread-Objekt habe ich eine Funktion implementiert, die die Gesamtgrösse eines Verzeichnisbaumes und die Namen der darin enthaltenen Dateien in TStringlists einfügt.
Delphi-Quellcode:
Bei der FindCLose(SR) in der vorletzen Zeile erhalte ich die Meldung
filesize_total:Integer;
destinationdir: String; FilesToCopy, DirectoriesToCreate:TStringlist; SizeOfFiles:TStringlist; function ThreadCopy.getDirectoriesFiles(startDirectory:string):longint; //Bestimmt Verzeichnisse und Dateien var SR : TSearchRec; Groesse : longint; Verzeichnis:String; begin Verzeichnis:=startDirectory; Groesse:=0; DirectoriesToCreate.Add(Verzeichnis); if Verzeichnis[length(Verzeichnis)]<>'\' then Verzeichnis:=Verzeichnis+'\'; if FindFirst(Verzeichnis+'*.*',$3F,SR)=0 then begin repeat if ((SR.Attr and faDirectory)>0) and (SR.Name<>'.') and (SR.Name<>'..') then //Verzeichnis erkannt begin //Rekursiver Funktionsaufruf Groesse:=Groesse+getDirectoriesFiles(Verzeichnis+SR.Name); if (SR.Name<>'.') and (SR.Name<>'..') then begin if DirectoriesToCreate.IndexOf(Verzeichnis+SR.Name) = -1 then //Falls Eintrag in Liste noch nicht vorhanden, Eintrag hinzufügen DirectoriesToCreate.Add(Verzeichnis+SR.Name); end; end else begin //Datei erkannt SizeOfFiles.Add(IntToStr(SR.Size)); Groesse:=Groesse+SR.Size; if (SR.Name<>'.') and (SR.Name<>'..') then begin //Falls Eintrag in Liste noch nicht vorhanden, Eintrag hinzufügen if FilesToCopy.IndexOf(Verzeichnis+SR.Name) = -1 then FilesToCopy.Add(Verzeichnis+SR.Name); end end; until FindNext(SR)<>0; FindClose(SR); end; "Incompatible Types: Cardinal und TSearchRec". Wo liegt der Fehler? Baue ich genau den gleichen Quelltext in einen anderen Thread ein funktionierts problemlos :?: Hat vielleicht jemand eine Idee? Gruß Manuel |
Re: Problem mit FindNext und FindClose
Versuch mal
Delphi-Quellcode:
SysUtils.FindClose(sr);
|
Re: Problem mit FindNext und FindClose
Jetzt bin ich platt... :wall:
die unit ist definitif eingebunden... aber so gehts... Danke... :thumb: |
Re: Problem mit FindNext und FindClose
Hallo manuel,
du hast in deinem Thread eine FUnktion namens FindClose, welche die Funktion aus SysUtils "überschreibt". Dass die Unit eingebunden ist, ist klar. Mit dem "SysUtils." sagst du dem Compiler nur, dass er in der Unit SysUtils nachsehen soll, ob es dort eine entsprechende Funktion gibt, anstatt sich die Unit-Hierarchie hochzuarbeiten. Greetz alcaeus |
Re: Problem mit FindNext und FindClose
Moin Manuel,
Du könntest auch, als weitere Variante, die Reihenfolge der Windows und der SysUtils unter Uses vertauschen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 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