AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

Ein Thema von t0mmy · begonnen am 15. Mär 2012 · letzter Beitrag vom 16. Mär 2012
Antwort Antwort
Seite 1 von 3  1 23      
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#1

Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 14:12
Kann mir da jemand weiter helfen?

Also ich will 2-Listboxen durchen und die jeweiligen Verzeichnisse und Files in einem Stammverzeichnis löschen.
Wie finde ich z.B: alle *.txt datei und kann diese löschen.

Weiters... wie such ich bestimmte Ordner auch wenn sie im Unterverzeichnissen drinnen sind.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 14:52
FindFirst, FindNext sind Dein Freund. Oder Du installierst Dir meine Komponente TFileSearcher, dann musst Du das nicht selber erledigen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 14:59
Da ich zufällig ein Projekt offen habe in dem sich diese Funktion befindet:

Delphi-Quellcode:
procedure GetFileList(Path, Ext: String; List: TStrings);
const
  Attrib = faArchive + faReadOnly + faHidden;
var
  Search: TSearchRec;
begin
  if Path[Length(Path)] <> '\then Path := Path + '\';

  if FindFirst(Path + '*' + Ext, Attrib, Search) = 0 then
  repeat
    List.Add(Path + Search.Name);
  until FindNext(Search) <> 0;

  FindClose(Search);
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 15:12
Ganz so einfach ist es wohl nicht, Rekursion fehlt z.B., man addiert keine Bitmasken, Du prüfst nicht auf Länge 0 usw.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 15:36
Ganz so einfach ist es wohl nicht, Rekursion fehlt z.B., man addiert keine Bitmasken, Du prüfst nicht auf Länge 0 usw.
Ich habe mal vor Jahren den Fehler gemacht mich bei genau dieser Funktion auf eine Diskussion einzulassen, die von der anderen Seite vereinfacht ausgedrückt so lautete: deine Funktion ist falsch, auch wenn sie aus der OH geradezu abgetippt ist. Auch wenn es in der OH so steht ist es ganz anders gemeint. Denn wenn man deine Funktion nimmt und der Anton ein Bier trinkt, dann könnte das passieren. Also studiere vorher die API wie es gemeint ist usw.

Im OH Beispiel wird auch addiert und nicht auf Länge 0 geprüft usw. Wenn das Beispiel falsch ist, dann biegt der Fehler bei Borland bzw. Nachfolger.

Was die Rekursion angeht, ok, wie gesagt, ich habe diese Funktion so aus meinem Projekt kopiert und da brauche ich es nicht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 15:37
Soll heißen: wenn Du ein Beispiel liest, das suboptimal programmiert ist, übernimmst Du es, weil es ja von Borland/Inprise/CodeGear/Embarcadero stammt? Interessante Einstellung.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 15:52
Ja!

Wie schon gesagt: ich habe mal den Fehler begangen mich schon mal bei dieser Funktion auf eine Diskussion einzulassen. Derjenige konnte gut meckern, konnte aber keine Zeile Verbesserung anfügen.

Ok, gehen wir mal die Sache anders an: ich programmiere mit Delphi, damit ich mich um den Sch... mit API & Co. nicht kümmern muß. Ich nutze die API wenn Delphi selbst eine Funktion nicht liefert. Wenn Delphi eine Funktion liefert, dann kann ich davon ausgehen, dass sie richtig ist. Warum? Weil ich paar hundert Euro dafür ausgegeben habe. Ich kann davon ausgehen, dass alle Fallstricke, also Punkte die ich beachten soll, in der OH vermerkt sind. Und da lasse ich mich mit Kommentaren wie "Interessante Einstellung" nicht als Idioten hinstellen, weil ich die Sprache so nutze wie es in der OH empfohlen wird. Wenn du auf dem Standpunkt stehst, dass das alles Idioten bei Borland waren und du es besser machst, dann akzeptiere ich das als deine Meinung. Aber lasse bitte davon ab andere da rein zu ziehen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 16:00
Auch die Leute von Borland waren nicht unfehlbar.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 16:01
Delphi-Quellcode:
procedure GetFileList(Path, Ext: String; List: TStrings);
const
  Attrib = faArchive or faReadOnly or faHidden;
var
  Search: TSearchRec;
begin
  Assert(Assigned(List));
  Path := IncludeTrailingPathDelimiter(Path);
  //Delphi vor der Kylix-Ära:
  //Path := IncludeTrailingBackslash(Path);

  if FindFirst(Path + '*' + Ext, Attrib, Search) = 0 then
    try
      repeat
        List.Add(Path + Search.Name);
      until FindNext(Search) <> 0;
    finally
      FindClose(Search);
    end;
end;
Ein paar klitzkleine Änderungen, und das wird viel stabiler. Aber bitte, Du musst das ja nicht übernehmen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 16:39
Warum die Gifterei?
bekommt Euch die Sonne nicht?
Vielleicht wäre es besser gewesen,gleich zu sagen, daß sich hinter faReadonly und Konsorten Bits stecken, die gesetzt werden oder eben nicht gesetzt werden, und darum kann das Addieren gut gehen, aber genauso gut kann es daneben gehen, darum sollte man es sich garnicht angewöhnen.
(Aber If-Schleifen am besten noch mit if a=true sind ja auch nicht auszurotten)

@Detlef
Jetzt hast Du aber auch die Längenprüfung für den Path unter den Tisch fallen lassen?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 14:11 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