![]() |
Alle Dateien eines Verzeichnisses außer *.ini
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:
Wie kann ich nun bestimmte Dateitypen ausschließen?
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; Gruß Bea |
Re: Alle Dateien eines Verzeichnisses außer *.ini
Hallo Bea,
du könntest es einfach so lösen. Anstelle von
Delphi-Quellcode:
schreibst du
FileList.Add(SR.Name);
Delphi-Quellcode:
if ExtractFileExt(SR.Name) <> '.ini' then
FileList.Add(SR.Name); |
Re: Alle Dateien eines Verzeichnisses außer *.ini
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:
//1 - eine gute Stelle um den terminierenden Backslash einzubauen
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; //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 |
Re: Alle Dateien eines Verzeichnisses außer *.ini
Empfehlen würde ich dann eher sowas ... was wäre, wenn das ini nicht kleingeschrieben ist :zwinker:
Delphi-Quellcode:
[add]
if AnsiLowerCase(ExtractFileExt(SR.Name)) <> '.ini' then
FileList.Add(SR.Name); upps, wo kommt den marabu her :shock: Und ja, CompareText geht auch ^^ [add2] Ach ja, vor
Delphi-Quellcode:
macht sich bestimmt ein
FileList.BeginUpdate; //2
Delphi-Quellcode:
nicht schlecht.
FileList.Clear;
|
Re: Alle Dateien eines Verzeichnisses außer *.ini
Zitat:
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. ;-) |
Re: Alle Dateien eines Verzeichnisses außer *.ini
...oh man, das ging ja schnell mit den Hinweisen :thumb:
Ich bedanke mich und probier's gleich aus. Bea |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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 by Thomas Breitkreuz