Entwickler-Ecke

Windows API - [Win7] Ordner löschen


Bergmann89 - Mi 09.02.11 01:19
Titel: [Win7] Ordner löschen
Hey,

ich versuch grad unter Win7 nen Ordner (sammt Inhalt) zu löschen. Leider is das nich mehr so einfach wie unter XP, da hab ich einfach DeleteFile benutzt und schon war er weg (wenn ich mich recht erinner). Also hab ich mal in der MSDN Library gesucht und folgendes gefunden: SHFileOperation [http://msdn.microsoft.com/en-us/library/bb762164%28v=vs.85%29.aspx]
Laut Beschreibung kann dieser Befehl ein komplettes Verzeichniss sammt Inhalt rekursiev löschen, also wie gemacht für mein Problem. Nur leider kennt mein Delphi 7 diese Funktion nicht, bzw ich finde die Unit nicht, die ich dazu einbinden muss. Gibt es diese Funktion in Delphi 7 überhaupt schon, oder gibt es evtl noch eine andere Lösung für mein Problem? Wäre toll wenn mir da mal eben jmd helfen könnte.

gn8 Bergmann.


Narses - Mi 09.02.11 01:28

Moin!

user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
ich versuch grad unter Win7 nen Ordner (sammt Inhalt) zu löschen. Leider is das nich mehr so einfach wie unter XP, da hab ich einfach DeleteFile benutzt und schon war er weg (wenn ich mich recht erinner).
Also, das halte ich aber für ein Gerücht. 8) Ordner(+Inhalt) konnte man noch nie "einfach so" löschen. :nixweiss:

user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Also hab ich mal in der MSDN Library gesucht und folgendes gefunden: [url=http://msdn.microsoft.com/en-us/library/bb762164%28v=vs.85%29.aspx]SHFileOperation[/url]
Und schonmal bei uns in die Suche geschaut? AFAIR sollten wir da einiges zu haben. :les: :think: ;)

cu
Narses


Hobby-Programmierer - Mi 09.02.11 02:00

Moin ...,
sollte unter D 7 und Win 7 laufen

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var
  aSHFOS : TSHFileOpStruct;
  szFrom : array[0..128of Char;
begin
  // Puffervariablen initialisieren
  FillChar(aSHFOS, Sizeof(aSHFOS), #0);
  FillChar(szFrom, Sizeof(szFrom), #0);
  // Zu löschendes Verzeichnis definieren
  StrPCopy(szFrom, 'e:\Test');
  with aSHFOS do begin
    Wnd := Handle;
    wFunc := FO_DELETE;
    pFrom := @szFrom;
    fFlags := FOF_NOCONFIRMATION or FOF_ALLOWUNDO;
    fAnyOperationsAborted := False;
    hNameMappings := nil;
    lpszProgressTitle:= nil;
  end;
  ShFileOperation(aSHFOS);
end;

LG Mario


Bergmann89 - Mi 09.02.11 02:07

Hey,

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
ich versuch grad unter Win7 nen Ordner (sammt Inhalt) zu löschen. Leider is das nich mehr so einfach wie unter XP, da hab ich einfach DeleteFile benutzt und schon war er weg (wenn ich mich recht erinner).
Also, das halte ich aber für ein Gerücht. 8) Ordner(+Inhalt) konnte man noch nie "einfach so" löschen. :nixweiss:
ok, dann hab ich mich jetzt geirrt^^

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Also hab ich mal in der MSDN Library gesucht und folgendes gefunden: [url=http://msdn.microsoft.com/en-us/library/bb762164%28v=vs.85%29.aspx]SHFileOperation[/url]
Und schonmal bei uns in die Suche geschaut? AFAIR sollten wir da einiges zu haben. :les: :think: ;)
Ich hab schon nach Suche in der Entwickler-Ecke ORDNER L?SCHEN und Suche in der Entwickler-Ecke DIRECTORY L?SCHEN gesucht, aber nix wirklich brauchbares gefunden.

user profile iconHobby-Programmierer hat folgendes geschrieben Zum zitierten Posting springen:
sollte unter D 7 und Win 7 laufen
Danke für die Mühe, aber ich muss dich leider enttäuschen. Er findet TSHFileOpStruct nicht. Hast du vlt ne extra Unit eingebunten?

MfG Bergmann


Hobby-Programmierer - Mi 09.02.11 02:09

Sorry, hatte ich vergessen zu erwähnen :oops:

Delphi-Quelltext
1:
uses ShellAPI;                    

Bei mir lief es damals unter D 7 Pro. Der Code ist allerdings locker 10 Jahre alt.


Narses - Mi 09.02.11 02:23

Moin!

user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Also hab ich mal in der MSDN Library gesucht und folgendes gefunden: [url=http://msdn.microsoft.com/en-us/library/bb762164%28v=vs.85%29.aspx]SHFileOperation[/url]
Und schonmal bei uns in die Suche geschaut? AFAIR sollten wir da einiges zu haben. :les: :think: ;)
Ich hab schon nach Suche in der Entwickler-Ecke ORDNER L?SCHEN und Suche in der Entwickler-Ecke DIRECTORY L?SCHEN gesucht, aber nix wirklich brauchbares gefunden.
Wie wäre es denn mit Suche in: Delphi-Forum, Delphi-Library SHFILEOPERATION gewesen? :zwinker: :lol:

cu
Narses


Delete - Mi 09.02.11 08:21

- Nachträglich durch die Entwickler-Ecke gelöscht -


Bergmann89 - Mi 09.02.11 10:54

Hey,

@Hobby-Programmierer: Danke. Die Unit is mir heut früh unter der Dusche auch in den Sinn gekommen ^^

@Narses: :autsch: schön blöd, hätt ich auch selber drauf kommen können :lol:

Gut dann hab ich jetzt alles was ich wollte un kann heut Abend weiter arbeiten. Dankeschön.

MfG Bergmann.