Announcement

Collapse
No announcement yet.

Ordner löschen funktioniert nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ordner löschen funktioniert nicht

    Hallo zusammen,

    ich habe über die Such-Funktion des Forums eine Routine gefunden um Ordner (incl SubFolders) zu löschen.,
    Leider funktioniert es nicht.

    <pre>
    function DelFolders(Foldername: string): string;
    var
    aSHFOS : TSHFileOpStruct;
    szFrom : array[0..128] of Char;
    begin
    // Puffervariablen initialisieren (Doppel-Null!)
    FillChar(aSHFOS, Sizeof(aSHFOS), #0);
    FillChar(szFrom, Sizeof(szFrom), #0);
    // Zu löschendes Verzeichnis definieren
    StrPCopy(szFrom, FolderName);
    with aSHFOS do
    begin
    Wnd := Handle; <b>//HIER IST ENDE, DENN HANDLE IST UNDEFINIERT!!!</b>
    wFunc := FO_DELETE;
    pFrom := @szFrom;
    fFlags := FOF_NOCONFIRMATION or FOF_ALLOWUNDO;
    fAnyOperationsAborted := False;
    end;
    ShFileOperation(aSHFOS);
    end;
    </pre>

    Bin für jede Hilfe dankbar.

    Danke im voraus,
    Marc

  • #2
    Das Kopieren von Ordnern funktionier auch nicht.
    Es ist bestimmt ein simples Problem.
    Vielleicht fehlt ja einfach eine Unit; aber welche?

    Welche Unit muss ich denn dafür einbinden

    Comment


    • #3
      Handle ist zum Beispiel bei Forms definiert. Kann das sein, dass Du den Code aus einem Form entnommen hast?<p>
      Probiere mal: Application.MainForm.Handle;<p>
      Schöne Grüße, Mario Noac
      Schöne Grüße, Mario

      Comment


      • #4
        Hallo,

        oder man verwendet das Handle 0 für den Desktop, wenn das eigene Programm kein Fenster hat (Bsp: Consolen-Anwendung, DLL, usw.)

        Comment


        • #5
          Guten Morgen,

          Okay, danke.
          Ich habe gerade die Variable Handle als THandle definiert und nun klappt es!

          Danke für die Antworten!
          Ich wünsche euch noch einen schönen Tag

          Comment


          • #6
            Wenn Du nur die Variable deklarierst, übergibst Du praktisch 0, mehr steht da ja nicht drin, wenn Du nichts rein schreibst. Dann kannst Du gleich fest die 0 eintragen.<p>
            Schöne Grüße, Mario NOac
            Schöne Grüße, Mario

            Comment


            • #7
              Hallo Marc,

              wollte gerade mal Deinen Bespielcode aus Posting 1 ausprobieren, doch ich bekomme die Fehlermeldung "Undefinierter Bezeichner TSHFileOpStruc".

              Welche Unit muß ich einbinden, damit es funktioniert?

              Ebenso sind die Bezeichner "Wnd", "wFunc", "pFrom", "fFlags" und "FOF_ALLOWUNDO" undefiniert. Wer kann mir weiterhelfen ?

              Grüsse,
              Carste

              Comment


              • #8
                Hallo,

                im Unterverzeichnis <b>Source</b> von Delphi liegen den ganzen Units rum, in denen man nach der Zeichenkette suchen kann. In der Unit <b>ShellAPI.pas</b> wird TSHFileOpStruc gefunden, so dass folgendes notwendig ist:
                <pre>
                uses ShellAPI;
                </pre&gt

                Comment

                Working...
                X