AGB  ·  Datenschutz  ·  Impressum  







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

alle dateien eines ordners ausgeben

Ein Thema von blackvisions · begonnen am 30. Jun 2004 · letzter Beitrag vom 16. Jul 2004
Antwort Antwort
blackvisions

Registriert seit: 30. Jun 2004
Ort: Affeltrangen CH
6 Beiträge
 
#1

alle dateien eines ordners ausgeben

  Alt 30. Jun 2004, 16:24
hey leute

ich bin nich so der programmierfreak, und komm deshalb auch nich so guet draus wie ihr alle wahrscheinlich. Nun habe ich eine frage:

ich möchte einen ordner angeben (ExtractFileDir()) und aus diesem ordner alle files auslesen und zum beispiel in einer listbox ausgeben.

wie mache ich das?? ich habe kein ahnung.. bin mal die themen in diesem forum durchgegange und habe ein paar sachen mit api und findfirst / findnext und so gefunden, komme aber überhaupt nicht draus..

please help
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

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

Re: alle dateien eines ordners ausgeben

  Alt 30. Jun 2004, 16:46
Sich mal in der Codelib! findfirstfindfirst
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#3

Re: alle dateien eines ordners ausgeben

  Alt 30. Jun 2004, 16:46
Hi und herzlich willkommen in der DP!

Mit FindFirst usw. liegst Du hier vollkommen richtig:
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer; Rückgabewert ist bei Erfolg 0, sonst Fehlercode
In Path gibst Du den Suchparameter an, in Deinem Fall [pfad]\*.*

In "Attr" gibst Du an, welche Dateien Du suchst (Attribute der Dateien vielmehr)
Code:
Konstante     Beschreibung
faReadOnly          Schreibgeschützte Datei
faHidden            Verborgene Datei
faSysFile               Systemdatei
faVolumeID          Laufwerks-ID
faDirectory         Verzeichnis
faArchive           Archivdatei
faAnyFile           Beliebige Datei
In Deinem Fall also faAnyFile

Um den Dateinamen zu erhalten, musst Du F.Name auswerten.
Nun hast Du die erste Datei erhalten. um die weiteren Dateien im Verzeichnis zu finden, ruf FindNext(F) auf und gehe mit F.Name analog vor

Nach der letzten Datei (Rückgabewert von findNext<>0) musst Du reservierten Speicher wieder freigeben, und zwar mit FindClose

Siehe auch OH

Schönen Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#4

Re: alle dateien eines ordners ausgeben

  Alt 30. Jun 2004, 16:50
Hallo, herzlich willkommen in der Delphi-PRAXiS!

Das sollte etwa so gehen:
Delphi-Quellcode:
procedure FindAll(Path: String; List: TStringList);
var
  SearchRec: TSearchRec;
begin
  List.Clear;
  if FindFirst(Path + '*.*', faAnyFile, SearchRec) = 0 then
    repeat
      List.Add(SearchRec.Name);
    until FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
end;
[EDIT] Bin ich langsam
FindClose ergänzt[/EDIT]
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
blackvisions

Registriert seit: 30. Jun 2004
Ort: Affeltrangen CH
6 Beiträge
 
#5

Re: alle dateien eines ordners ausgeben

  Alt 30. Jun 2004, 17:30
riiiisen dank an alle! habt mir weiter geholfen aber was ich völlig ausser acht gelassen habe:

simple und eifache !!FileListBox!! ist am einfachsten

aber nochmals vielen danke an alle! *g*
  Mit Zitat antworten Zitat
Freddy82

Registriert seit: 16. Jul 2004
2 Beiträge
 
#6

Re: alle dateien eines ordners ausgeben

  Alt 16. Jul 2004, 22:11
Ich hab ein ähnliches Problem:

Ich habe einen Ordner mit vielen (ca. 1000) Dateien. In diesen Ordner werden von einem anderen Programm Logfiles geschrieben, mein Delphiprogramm überwacht in regelmäßigen Abständen den Ordner und überprüft, ob neue Dateien dazugekommen sind und wertet diese aus.

Soweit zur Theorie, das Problem an der Sache: Wenn ich mit FindNext durch die Dateien gehe dauert das sehr lange, da es halt viele Dateien sind. Letztendlich interessieren mich aber nur die neusten Dateien, die seit dem letzten Durchlauf dazugekommen sind. Gibt es eine Möglichkeit bei FindNext die Dateien nach dem Erstellungsdatum sortiert (neueste zuerst) zu durchlaufen?

Wenn dem so wäre könnte ich den Durchlauf einfach abbrechen, nachdem ich die erste Datei finde, die nicht neu ist, mit dem herkömmlichen FindNext muss ich jedoch immer alle Dateien durchgehen.

Vielen Dank und Grüße, Freddy
  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:44 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