Einzelnen Beitrag anzeigen

Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: RenameFile schlägt fehl - falscher Parameter

  Alt 5. Feb 2011, 20:06
Hallo,

ich hab jetzt folgenden Code:

Delphi-Quellcode:
      if not MoveFileEx(PChar(strOldFile), PChar(strNewFile), MOVEFILE_COPY_ALLOWED) then
      begin
        ShowMessage(SysErrorMessage(GetLastError));
        ShowWarning('Fehler bei Umbenennen von ' + #13#10 + strOldfile +
                     #13#10 + 'nach' + #13#10 + strNewFile);
      end;
Dank dem Vorschlag von Himitsu hab ich SysErrorMessage vor die eigentliche Fehlermeldung gestellt und bekam

"Der Prozess kann nicht auf die Datei zugreifen, da die Datei von einem anderen Prozess verwendet wird."

Also im ProcessExplorer nachgeschaut und tatsächlich was gefunden:

<Non-Existent Process> 2440 Handle D:\Test\01_Voyager_of_the_future.mp3

Zwar nicht sehr aussagekräftig, aber da der (das?) Handle nicht gefunden wird, solange mein Programm nicht läuft, war klar, dass es mein eigenes Programm war, das die Datei im Zugriff hält.

Ursache war folgendes;
Die Dateinamen werden (zusammen mit anderen Infos) in ein Grid eingelesen. Ausserdem werden MP3-Infos ausgelesen. Zu diesem Zweck werden in einer Schleife (für alle Dateien...) Streams erzeugt. Dummerweise habe ich zwar fleissig Streams erzeugt, da aber die Freigabe .Free ausserhalb der Schleife lag, wurde nur der zuletzt erzeugte Stream wieder freigegeben, alle anderen (und damit die Dateizugriffe) blieben bestehen

@Assarbad: Das mit dem "Pfad spielt keine Rolle" war so gemeint, dass der Fehler trotzdem kam, ob mit Pfad oder ohne. Sobald der Zugriff funktioniert, merkt man sehr schnell, wie wichtig die Angabe des Pfads bei der Zieldatei ist

Danke, Community, hätte ich ohne euch nicht gefunden

Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat