Einzelnen Beitrag anzeigen

manuel

Registriert seit: 17. Sep 2003
Ort: MainBootRecord
72 Beiträge
 
Delphi 4 Client/Server
 
#1

Problem mit FindNext und FindClose

  Alt 2. Mär 2005, 14:26
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:
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;
Bei der FindCLose(SR) in der vorletzen Zeile erhalte ich die Meldung
"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
sometimes I feel diagonally parked in a parallel universe
  Mit Zitat antworten Zitat