Hi Chester,
nicht du hast den Ordner geöffnet, sondern der Windows Explorer sperrt ihn - nachdem du mindestens eine Datei daraus gelöscht hast. Du verwendest übrigens gar keine Flags. Die Löschfunktionalität habe ich so gekapselt:
Delphi-Quellcode:
// uses ShellApi;
function ShellDelete(const fsoName: string): Integer;
var
sh: SHFileOpStruct;
iResult: Integer;
begin
ZeroMemory(@sh, sizeof(sh));
with sh do
begin
wFunc := fo_Delete;
pFrom := PChar(fsoName + #0);
fFlags := fof_Silent or fof_NoConfirmation or fof_NoErrorUI;
end;
Result := SHFileOperation(sh);
end;
Bei dir wäre zu überlegen, ob du nicht alle Dateien mit einem Aufruf löschst. Schneller ist das.
Grüße vom marabu