AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Alle Dateien eines Verzeichnisses außer *.ini
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Dateien eines Verzeichnisses außer *.ini

Offene Frage von "Bea"
Ein Thema von Bea · begonnen am 6. Apr 2006 · letzter Beitrag vom 6. Apr 2006
Antwort Antwort
Bea

Registriert seit: 23. Dez 2004
53 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Alle Dateien eines Verzeichnisses außer *.ini

  Alt 6. Apr 2006, 10:18
Hallo,
ich möchte in einem Verzeichnis alle Dateien aufgelistet bekommen außer *.ini
Im Moment liste ich alle Dateien mit folgender Funktion auf:

Delphi-Quellcode:
procedure ListFileDir(Path: string; FileList: TStrings);
var
  SR: TSearchRec;
begin
  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
    begin
      repeat
        if (SR.Attr and faDirectory) = 0 then
          begin
            FileList.Add(SR.Name);
          end;
      until FindNext(SR) <> 0;
      FindClose(SR);
    end;
end;
Wie kann ich nun bestimmte Dateitypen ausschließen?

Gruß Bea
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Alle Dateien eines Verzeichnisses außer *.ini

  Alt 6. Apr 2006, 10:25
Hallo Bea,

du könntest es einfach so lösen. Anstelle von

FileList.Add(SR.Name); schreibst du

Delphi-Quellcode:
if ExtractFileExt(SR.Name) <> '.inithen
  FileList.Add(SR.Name);
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Alle Dateien eines Verzeichnisses außer *.ini

  Alt 6. Apr 2006, 11:13
Hallo.

Auch wenn man auf Rekursion verzichtet und Dateinamen ohne Pfadanteil ausreichend sind - da wären schon noch ein paar Details, die man verbessern könnte - ohne die Signatur oder die Semantik zu verändern:

Delphi-Quellcode:
procedure ListFileDir(Path: string; FileList: TStrings);
var
  SR: TSearchRec;
begin
  Path := IncludeTrailingPathDelimiter(Path); //1
  FileList.BeginUpdate; //2
  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
  begin
    repeat
      if ((SR.Attr and faDirectory) = 0)
      and (CompareText(ExtractFileExt(sr.Name), '.ini') <> 0) then //3
        FileList.Add(SR.Name);
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
  FileList.EndUpdate; //4
end;
//1 - eine gute Stelle um den terminierenden Backslash einzubauen
//2 - beschleunigt die Abwicklung beim Speichern z.B. in einer ListBox
//3 - schließt auch Dateien mit .INI aus
//4 - reaktiviert die Anzeige der visuellen Komponente (ListBox)

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.121 Beiträge
 
Delphi 12 Athens
 
#4

Re: Alle Dateien eines Verzeichnisses außer *.ini

  Alt 6. Apr 2006, 11:14
Empfehlen würde ich dann eher sowas ... was wäre, wenn das ini nicht kleingeschrieben ist
Delphi-Quellcode:
if AnsiLowerCase(ExtractFileExt(SR.Name)) <> '.inithen
  FileList.Add(SR.Name);
[add]
upps, wo kommt den marabu her
Und ja, CompareText geht auch ^^

[add2]
Ach ja, vor
FileList.BeginUpdate; //2 macht sich bestimmt ein
FileList.Clear; nicht schlecht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Alle Dateien eines Verzeichnisses außer *.ini

  Alt 6. Apr 2006, 11:30
Zitat von himitsu:
...FileList.Clear; nicht schlecht.
Hai Forenengel,

ich finde eine Funktion sollte nicht einfach den Inhalt von etwas löschen was ich ihr übergebe. Es kann ja sein das ich in der StingList die Dateien aus verschiedenen Verzeichnissen haben möchte. Da sollte man entweder ein Flag übergeben das die SL gelöscht wird oder es einfach dem Programmierer überlassen sich darum zu kümmern.
Stephan B.
  Mit Zitat antworten Zitat
Bea

Registriert seit: 23. Dez 2004
53 Beiträge
 
RAD-Studio 2009 Ent
 
#6

Re: Alle Dateien eines Verzeichnisses außer *.ini

  Alt 6. Apr 2006, 12:01
...oh man, das ging ja schnell mit den Hinweisen
Ich bedanke mich und probier's gleich aus.
Bea
  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 11:22 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