AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi SHFileOperation verursacht einen ERangeError
Thema durchsuchen
Ansicht
Themen-Optionen

SHFileOperation verursacht einen ERangeError

Ein Thema von WladiD · begonnen am 1. Feb 2006 · letzter Beitrag vom 2. Feb 2006
 
WladiD

Registriert seit: 27. Jan 2006
Ort: Celle
135 Beiträge
 
Delphi 10.4 Sydney
 
#1

SHFileOperation verursacht einen ERangeError

  Alt 1. Feb 2006, 08:31
Hallo DelphiPraxis-Community,

ich habe irgendwo den folgenden Code ergoogelt um komplette Verzeichnisse (rekursiv) löschen zu können...

Delphi-Quellcode:
function DeleteFile(const AFile: string): boolean;
//Löscht Dateien. Kann auch ganze Verzeichnisse inkl. Unterverz. mit Dateien
//löschen
var
    sh: SHFileOpStruct;
begin
    ZeroMemory(@sh, sizeof(sh));
    with sh do
    begin
        Wnd := Application.Handle;
        wFunc := fo_Delete;
        pFrom := PChar(AFile + #0 + #0);
        fFlags := fof_Silent or fof_NoConfirmation;
    end;

    Result:=SHFileOperation(sh) = 0;
end;

funktioniert auch wunderbar mit kleinem Schönheitsfehler:

In der Zeile
Result:=SHFileOperation(sh) = 0; wird die Exception ERangeError ausgelöst aber auch nur wenn der Debugger läuft. Die Dateien/Verzeichnisse werden aber richtig gelöscht. Wird das Programm standalone ausgeführt kommt keine Exception.

Ich dachte zuerst es liegt am Rückgabewert der Funktion die einen Wert grösser als MaxInt oder kleiner als MinInt zurückliefert. Dem sei nicht so...sprich die Exception kommt auch wenn die Funktion ohne Vergleich angegeben wird.

Klar könnte ich die Exception vom Debugger ausschliessen lassen, aber das will ich nicht.

Hat jemand eine Ahnung warum die Exception ausgelöst wird?

Verwende Delphi 7.

mfg
Waldemar Derr
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz