Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Alle Dateien in Verzeichniss löschen aber den Ordner nicht (https://www.delphipraxis.net/49769-alle-dateien-verzeichniss-loeschen-aber-den-ordner-nicht.html)

TUNiX 15. Jul 2005 17:54


Alle Dateien in Verzeichniss löschen aber den Ordner nicht
 
Also alà:

C:\Hahaha\*.* löschen. Aber das verzeichniss hahaha soll nicht gelöscht werden. Wie geht das? Hab schon die suche benutz, aber nichts gefunden. Mfg,
TUNiX

citybreaker 15. Jul 2005 18:03

Re: Alle Dateien in Verzeichniss löschen aber den Ordner nic
 
Hi,
du könnest mit FindFirst und FindNext die Dateien in dem
Verzeichnis suchen und anschließend mit einer for Schleife
löschen.

Jarmen_Kell 15. Jul 2005 18:30

Re: Alle Dateien in Verzeichniss löschen aber den Ordner nic
 
Wie wärs mit der unschönen Möglichkeit, den Ordnernamen und Ort zu speichern, alles zu löschen und dann Ordner neu erstellen?
Dann braucht man nichts mit Find... zu machen

DGL-luke 15. Jul 2005 21:21

Re: Alle Dateien in Verzeichniss löschen aber den Ordner nic
 
würde nicht evtl.

Delphi-Quellcode:
shellexecute(application.handle,'del','C:\hahaha\*.*',wshidden);
den dienst tun?

EDIT: del ist keine anwendung als solche... aber irgendwie muss man del doch innerhalb der kommandozeile aufrufen können?!

Luckie 15. Jul 2005 21:39

Re: Alle Dateien in Verzeichniss löschen aber den Ordner nic
 
1.: Ordner mit läöschen und wieder erstellen ist ganz schlecht, dabei gehen nämlich auch die Rechte verloren.
2.: del ist ein Befehl des Kommandozeileninterpreters und muss deshalb als Parameter an selbigen übergeben werden. Beispiele gibt es in der DP genug.
3.: Lösung: Wie schon vorgeschlagen mit Delphi-Referenz durchsuchenFindFirst, Delphi-Referenz durchsuchenFindNext die Dateien suchen und dann mit MSDN-Library durchsuchenSHFileOperation löschen. Siehe auch dazu Beiträge in der Code-Lib.

marabu 15. Jul 2005 21:48

Re: Alle Dateien in Verzeichniss löschen aber den Ordner nic
 
Zitat:

Zitat von DGL-luke
irgendwie muss man del doch innerhalb der kommandozeile aufrufen können?!

So geht das:

Delphi-Quellcode:
var
  cmd, shell: string;
begin
  shell := GetEnvironmentVariable('COMSPEC');
  cmd := '/c del ' + ParamStr(1) + ' /q';
  ShellExecute(0, '', PAnsiChar(shell), PAnsiChar(cmd), '', SW_HIDE);
end;
Löscht man alle Dateien einzeln, dann kann einem bei dickeren Ordnern schonmal der Geduldsfaden reißen...

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 Uhr.

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-2025 by Thomas Breitkreuz