Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: SHFileOperation verursacht einen ERangeError

  Alt 1. Feb 2006, 11:17
Ich habe ein wenig getestet und dabei folgende Änderungen an der Funktion für gut befunden:

Delphi-Quellcode:
function ShellDeleteFile(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 + #0);
    fFlags := fof_Silent or fof_NoConfirmation or fof_NoErrorUI;
  end;
  Result := SHFileOperation(sh);
end;
Deine Fehlermeldung habe ich nicht reproduzieren können. Zum Testen habe ich einen Button mit der Standard FileOpen Action verwendet:

Delphi-Quellcode:
procedure TTestForm.FileDeleteAccept(Sender: TObject);
var
  iResult: Integer;
begin
  with FileDelete.Dialog do
  begin
    if cbFolder.Checked
      then iResult := ShellDeleteFile(ExtractFileDir(FileName))
      else iResult := ShellDeleteFile(FileName);
    ShowMessage(SysErrorMessage(iResult));
  end;
end;
Vielleicht möchtest du das bei dir nachvollziehen?

marabu
  Mit Zitat antworten Zitat