Einzelnen Beitrag anzeigen

Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#1

Fehler beim Kopieren eines Verzeichnisses?

  Alt 29. Aug 2005, 22:02
Hallo!!

Ich benutze folgenden, bekannten Code um ein Verzeichnis zu kopieren:

Code:
function CopyDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_COPY;
    fFlags := FOF_NoConfirmMkDir + FOF_NOCONFIRMATION;
    pFrom := PChar(fromDir + #0);
    pTo   := PChar(toDir + #0)
  end;
  Result := (0 = ShFileOperation(fos));
end;
Nun habe ich das Problem, dass ich das kopierte Verzeichnis einfach nicht löschen kann, während mein Programm läuft! Ich kann zwar alle Dateien darin ohne Probleme löschen (alle Unterverzeichnisse sind also leer), aber die Routine zum Löschen schlägt jedesmal fehlt:

Code:
function DelDir(dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;
Auch mit RemoveDir() oder RMDir() keinen Erfolg.


Meine Frage ist also: Ist das kopierte Verzeichnis noch irgendwie geöffnet?? Sobald ich meine Anwendung nämlich beende, kann ich es mit den selben Routinen durch anderes Delphi-Prog problemlos löschen.
Wie kann ich dieses Verzeichnis "schließen"??
  Mit Zitat antworten Zitat