AGB  ·  Datenschutz  ·  Impressum  







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

GetAllFiles

Ein Thema von ueei.net · begonnen am 10. Aug 2004 · letzter Beitrag vom 10. Aug 2004
Antwort Antwort
ueei.net

Registriert seit: 4. Mär 2004
Ort: Wels
53 Beiträge
 
#1

GetAllFiles

  Alt 10. Aug 2004, 20:14
Hallo,

möchte eine beliebige Anzahl von Endungen in meine rekursive Dateisuche einbauen.

Ich suche zur Zeit wie folgt.

Delphi-Quellcode:
//Rekursives Einlesen
procedure TForm1.GetAllFiles(mask: string);
var
  search: TSearchRec;
  directory: string;
  checksum: string;
begin
  directory := ExtractFilePath(mask);

  // find all files
  if FindFirst(mask, $23, search) = 0 then
  begin
    repeat
      // add the files to the listbox
      checksum := IntToStr(GetCheckSum(directory + search.Name));
      Form1.Memo_akt.Lines.Add(directory + search.Name + '|' + checksum);
      Inc(Count);
    until FindNext(search) <> 0;
  end;

  // Subdirectories/ Unterverzeichnisse
  if FindFirst(directory + '*.*', faDirectory, search) = 0 then
  begin
    repeat
      if ((search.Attr and faDirectory) = faDirectory) and (search.Name[1] <> '.') then
        GetAllFiles(directory + search.Name + '\' + ExtractFileName(mask));
    until FindNext(search) <> 0;
    FindClose(search);
  end;
end;
Nun möchte ich aber als mask mehrere Endungen angeben können (*.jpg,*.gif,*.tif) usw.

Wie kann ich das angehen?

Danke
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#2

Re: GetAllFiles

  Alt 10. Aug 2004, 20:21
Ersetze einfach das Komma durch einen Strichpunkt und es stimmt!
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
ueei.net

Registriert seit: 4. Mär 2004
Ort: Wels
53 Beiträge
 
#3

Re: GetAllFiles

  Alt 10. Aug 2004, 20:26
hallo, leider auch nicht. hatte ich auch schon mal probiert.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: GetAllFiles

  Alt 10. Aug 2004, 21:02
Moin ueei.net,

da gäbe es, so auf Anhieb, zwei Ansätze:
  1. Lass die Schleife für alle übergebenen Endungen laufen
  2. Lies alle Dateien, und prüfe, ob deren Endung in der Maske vorkommt.

Auch wenn es üblich ist ein ; als Trennzeichen zu verwenden, würde ich das nicht nehmen, denn dies ist ein gültiges Zeichen in einem Dateinamen.
Nimm lieber eines der Zeichen, die nicht vorkommen dürfen (*,\,/,",<,>,?,|,.
Optisch sticht besonders | heraus.

Für den zweiten Fall könnte man dann so testen:

if pos(AnsiUpperCase(ExtractFileExt(search.Name)+'|'),AnsiUpperCase(mask)) > 0 then ... mask müsste dann so aufgebaut sein:

Code:
.jgp|.gif|.tif|
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 07:02 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