Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Verzeichnisse löschen (https://www.delphipraxis.net/1541-verzeichnisse-loeschen.html)

Bechti 6. Dez 2002 19:50


Verzeichnisse löschen
 
Hi,

versuche ein Unterverzeichnis mit Delphi zu löschen. Weiß jemand wie?

Gruß,
Bechti

Alexander 6. Dez 2002 20:05

hi
mit dem Befehl RemoveDir(ordner_mit_Pfad) kannst du ein Verzeichnis löschen

Bechti 6. Dez 2002 20:07

Danke,
habe aber vergessen zu erwähnen, daß ich Verzeichnisse mit Inhalt löschen möchte

Alexander 6. Dez 2002 21:14

dann dürfte das mit dieser Funktion gehen:
Delphi-Quellcode:
function DelDir(dir: string): Boolean;
uses
 ShellApi;
...
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;
Viel Spass damit!

[edit]Delphi-Codetags eingefügt. Mfg. Gérome[/edit]

Bechti 6. Dez 2002 22:52

Vielen Dank.

Allerdings kann ich hiermit nicht das gewünschte Verzeichnis, sondern nur dessen inhalt löschen.

Wenn ich z.b. als Dir = 'd:\test\2002' eingebe, löschte er nicht "2002" sondern alles was darunter liegt. Möchte aber gerne "2002" und alles darunter löschen.

Daniel B 6. Dez 2002 23:31

Hallo,

dann schreib doch nach der Funktion noch RemoveDir()...

GRüsse, Daniel :hi:

MathiasSimmack 7. Dez 2002 08:12

Zitat:

Zitat von Bechti
Allerdings kann ich hiermit nicht das gewünschte Verzeichnis, sondern nur dessen inhalt löschen.

Wenn ich z.b. als Dir = 'd:\test\2002' eingebe, löschte er nicht "2002" sondern alles was darunter liegt.

Das stimmt nicht! Ich hab´s mal eben ausprobiert, weil ich sowieso gerade ein Verzeichnis löschen musste ... war weg ...

Zitat:

Möchte aber gerne "2002" und alles darunter löschen.
Tut er, wenn du die Funktion
Code:
DelDir('d:\test\2002')
aufrufst. Was du nicht machen darfst, ist
Code:
DelDir('d:\test\2002\*.*')
Dabei wird nur der Inhalt gelöscht, der Ordner "2002" selbst bleibt zurück.

vsh 30. Mär 2006 14:21

Re: Verzeichnisse löschen
 
hmm, ich danke erstmal für den programmcode der löschfunktion, und möchte noch eine frage anhängen.
manchmal ist der Ordner komplett gelöscht, manchmal ist er nur leer.

So richtig schlüssig wann welcher fall eintritt ist es irgendwie nicht. aber häufig tritt der fall auf, wenn ich zB viele kleine dateien verschiedenen typs habe (4000 files, ings 70MB).

ichbins 30. Mär 2006 17:55

Re: Verzeichnisse löschen
 
vllt liegt das daran ob der Ordnername ein abschliessendes backslash ('\') enthält oder nicht.

vsh 30. Mär 2006 18:30

Re: Verzeichnisse löschen
 
also wenn man ein abschliessendes "\" übergibt, dann löscht er nichts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz