Thema: Delphi ReadDirectoryChangesW

Einzelnen Beitrag anzeigen

Ganymed

Registriert seit: 11. Jun 2003
Ort: Hameln
56 Beiträge
 
Delphi 7 Architect
 
#5

Re: ReadDirectoryChangesW

  Alt 26. Mär 2009, 10:03
Hallo!

Ich habe mir deinen Code auch mal "ausgeliehen" , bekomme aber fast immer bei CloseHandle(FhFile); im Destructor eine AV bzw. einen Memory-leak...

Muss man irgendwas bestimmtes machen, bevor man den freigibt?

Mein Code sieht grob so aus:
Delphi-Quellcode:
constructor TAutomatics.Create(AOwner: TControl; ASettings: TAutomaticsSetting; ASequenceIndex: Integer);
begin
  inherited Create;
  FOwner := AOwner;

  iSequenceIndex := ASequenceIndex;
  rSettings := ASettings;
  bEnabled := False;

  oFileQueue := TStringList.Create;
  oFolderControler := TFldrControl.Create(AOwner);
  oFolderControler.Folder := rSettings.sInputFolder;
  oFolderControler.OnGetResult := FolderControlEvent;
end;

destructor TAutomatics.Destroy;
begin
  oFolderControler.StopThread;
  oFolderControler.Free;
  oFileQueue.Free;
  inherited;
end;
Gestartet wird der Thread an anderer Stelle mit StartThread().

Achja, noch eine Frage:
Das Event triggert ja, sobald eine Datei erstellt wird. Wenn man nun eine sehr große Datei kopiert, triggert das Event, sobald der Dateiname da ist, und lange bevor die Datei komplett erstellt/kopiert wurde. Gibt es einen Trick, wie man ermitteln kann, ob die Datei vollständig erstellt wurde? Mit schwebt da was mit einer Schreife auf TFileStream.Create(..., fmShareExclusive) vor, bis der exklusive Zugriff erfolgreich ist...
  Mit Zitat antworten Zitat