AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Alle deteien eines Ordners löschen???

Ein Thema von romber · begonnen am 27. Sep 2004 · letzter Beitrag vom 27. Sep 2004
Antwort Antwort
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Alle deteien eines Ordners löschen???

  Alt 27. Sep 2004, 13:19
Hallo!

Wie kann ich alle Dateien eines Ordners löschen?
  Mit Zitat antworten Zitat
Benutzerbild von maxk
maxk

Registriert seit: 19. Sep 2004
Ort: Berlin
57 Beiträge
 
Delphi 6 Personal
 
#2

Re: Alle deteien eines Ordners löschen???

  Alt 27. Sep 2004, 13:26
Delphi-Quellcode:
function RemoveDirectories(Dir:string):boolean;
// This function deletes a directory and returns the result of deletion
var SR:TSearchRec;
    Continue:boolean;
begin
 Result:=False;
 Dir:=BackSlash(Dir);
 Continue:=FindFirst(Dir+'*.*',faAnyFile,SR)=0;
 while Continue do try
  if copy(SR.Name,1,1)='.then System.Continue;
  if not DirectoryExists(Dir+SR.Name) then begin
   SetFileAttributes(PChar(Dir+SR.Name),FILE_ATTRIBUTE_NORMAL);
   DeleteFile(Dir+SR.Name);
  end else RemoveDirectories(Dir+SR.Name);
 finally
   Continue:=FindNext(SR)=0;
 end;
 FindClose(SR);

 SetFileAttributes(PChar(Dir),FILE_ATTRIBUTE_NORMAL);
 Delete(Dir,length(Dir),1);
 if length(Dir)>0 then Result:=RemoveDir(Dir);
end;
Das habe ich im StartMenuCleaner benutzt, aber manchmal scheint es Probleme zu geben - warum weiss ich nicht
Ein im Mittelpunkt stehender Kunde steht im Weg.
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#3

Re: Alle deteien eines Ordners löschen???

  Alt 27. Sep 2004, 13:27
Hi!

Du könntest einen ordner über n OpenDialog auswählen, in dem die Dateien gelöscht werden sollen, dann lädtst du alle Dateien incl. ihrer Pfade in eine Listbox oder so und arbeitest dann mit DeleteFile. Es gibt gleube auch Funktionen um einen gesamten Ordner zu löschen. Hast du schonmal in der DP gesucht??

Gruß,
Sascha
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Alle deteien eines Ordners löschen???

  Alt 27. Sep 2004, 14:17
Moin!

Wie bitte? Alle Dateien in eine ListBox laden? Du willst hier wirklich jemanden beibringen das er eine visuelle Komponente nehmen muss um eine Liste von Strings zu haben? Bring ihnen lieber bei wie man das ganze mit einer TStringList macht...

MfG
Muetze1
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#5

Re: Alle deteien eines Ordners löschen???

  Alt 27. Sep 2004, 14:20
Zitat von Muetze1:
Bring ihnen lieber bei wie man das ganze mit einer TStringList macht...
Hast ja recht, mit ner StringList gehts schneller und auch einfacher. Ich bin nur davon ausgegangen, das er es OOP schreiben will und somit den Usern bevor der Ordner gelöscht wird, vielleicht zur Sicherheit erstmal zeigen will, welche Dateien da überhaupt drin sind! Wäre sinnlos, wenn der Nutzer erst den Explorer öffnen müsst und da dann nachschaut. Da wärs aus der Anwendung raus komfortabler.

Gruß,
Sascha
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Alle deteien eines Ordners löschen???

  Alt 27. Sep 2004, 14:22
Zitat von maxk:
Das habe ich im StartMenuCleaner benutzt, aber manchmal scheint es Probleme zu geben - warum weiss ich nicht
Wie äußern sich die?
  Mit Zitat antworten Zitat
Benutzerbild von maxk
maxk

Registriert seit: 19. Sep 2004
Ort: Berlin
57 Beiträge
 
Delphi 6 Personal
 
#7

Re: Alle deteien eines Ordners löschen???

  Alt 27. Sep 2004, 14:50
Gelegentlich haut er das Unterverzeichnis mit weg. Also der Aufruf mit C:\Test\Hallo\, löscht C:\Test gleich mit. Aber ich kriege den Fehler nicht reproduziert (tritt immer mal so auf) und imo ist der orbige Code richtig.
Ein im Mittelpunkt stehender Kunde steht im Weg.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8

Re: Alle deteien eines Ordners löschen???

  Alt 27. Sep 2004, 15:17
Klingt, als würde er eine Ebene zu hoch springen, bzw. als würde sich die Funktion eben einmal zu oft aufrufen. Muss dein Programm auch unter anderen OS laufen oder nur unter Windows? In dem Fall würde ich kurzerhand zur bekannten Explorer-Löschfunktion (SHFileOperation) greifen. Da dürfte so ein Problem nicht auftreten, und du kriegst auch noch ´ne schicke Statusanzeige.
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:54 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