Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#1

CopyFile gibt Datei nicht frei?

  Alt 8. Dez 2006, 22:32


Ich fordere über das Windows-Message-System von meiner Serverapplikation eine Datei an. Die Serverapplikation fertigt eine Kopie dieser Datei mit CopyFile an und schickt mir den Pfad dieser Datei wiederum übers Messaging-System. Ich öffne diese Datei per TStringlist.LoadFromFile - und was müssen meine brechenden Augen sehen?
Zitat:
Erste Gelegenheit für Exception bei $7C81EB33. Exception-Klasse EFOpenError mit Meldung 'Datei D:\Eigene Dateien von Superuser\tut_nichts_zur_sache\published\log0.log. txt kann nicht geöffnet werden. Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird'. Prozess Core.exe (1676)
Sollte die Datei nicht wieder frei sein, wenn CopyFile zurückkehrt? Was man hier sieht, spricht fürs gegenteil:

Delphi-Quellcode:
 
//generate filenames
      old := BaseDir + IncludeTrailingPathDelimiter(LOGDIR) + Logs[LogIdent];
      new := BaseDir + IncludeTrailingPathDelimiter(PUBDIR) + Logs[LogIdent];

      //make public file
      CopyFile(PChar(old),PChar(new),false); //CopyFile wird ausgeführt

      //fill formal data
      LI.YourHandle := AppHandle;
      LI.LogIdentifier := LogIdent;

      //write formal data
      MS := TMemoryStream.Create;
      try
        MS.Write(LI,SizeOf(LI));
        MS.Write(new[1], length(new));

        //fill copydatastruct
        CpDt.dwData := Integer(ltReadAnswer);
        CpDt.cbData := MS.Size;
        CpDt.lpData := MS.Memory;

        TLogMessageThread.Create(WHandle,AppHandle,CpDt,ThreadLog); //Nachricht wird vershickt
      finally
        MS.Free;
      end;
Falls es nicht mein Fehler ist, und ich den übersehe: Womit ersetze ich CopyFile, um es auf jeden Fall "blocking" zu haben?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat