AGB  ·  Datenschutz  ·  Impressum  







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

Inhalt eines Ordners auslesen

Ein Thema von chilledcroete · begonnen am 30. Mär 2009 · letzter Beitrag vom 31. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
chilledcroete

Registriert seit: 30. Mär 2009
4 Beiträge
 
#1

Inhalt eines Ordners auslesen

  Alt 30. Mär 2009, 22:29
Hallo

Ich würde gerne den Inhalt eines Ordners auslesen, d.h eine Stringliste mit allen Datei und Ordnernamen erhalten, die der zu durchsuchende Ordner enthält.
Am liebsten wäre mit eine Funktion, die wie der Befehl "dir /b" unter DOS/Eingabaufforderung arbeitet.

Vielen Danke schon mal im Voraus!
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#2

Re: Inhalt eines Ordners auslesen

  Alt 30. Mär 2009, 22:41
Willkommen

Ich denke, ich spreche für die Mehrheit hier, wenn ich sage, dass es sehr geschätzt wird, wenn man sich selbst auf die Suche macht. Dann findet man zum Bleistift aus der Codelib dies hier:

http://www.delphipraxis.net/internal...ct.php?t=33031

Gruß,
Daniel
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
chilledcroete

Registriert seit: 30. Mär 2009
4 Beiträge
 
#3

Re: Inhalt eines Ordners auslesen

  Alt 31. Mär 2009, 12:33
Ich habe auch schon selber gesucht und einen ähnlichen Code gefunden.
Leider läuft sowohl dein Code, als auch der, den ich gefunden habe bei mir nicht.
Es wird ein Fehler ausgegeben, das die Funktion "DirectoryExist()" unbekannt ist. Ich glaube das liegt daran, dass ich bei Uses nicht Variant einfügen kann, da sie bei mir nicht installiert ist.
Ich benutze Delphi 5
Leider kann ich auch keine zusätzlichen Komponenten etc. installieren, da der Code auch in der Schule laufen sollte.
Hat jemand eine Idee, wie ich mein Problem lösen könnte? Ich würde mich sehr über einen Ansatz freuen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Inhalt eines Ordners auslesen

  Alt 31. Mär 2009, 12:39
DirectoryExist liegt in der Unit SysUtils. Dies hätte dir ein Blick in die Online-Hilfe auch gesagt. Variant.pas gibt es erst ab D6, so das du i.d.R. diese Uses-Anweisung bei D5 einfach weg lassen kannst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
chilledcroete

Registriert seit: 30. Mär 2009
4 Beiträge
 
#5

Re: Inhalt eines Ordners auslesen

  Alt 31. Mär 2009, 12:52
Nein die Funktion liegt in der Unit FileCtrl. Das Programm funktioniert aber auch zur Laufzeit nicht. Es stürzt ab und im Taskmanager steht, das es keine Rückmeldung mehr liefert.

Gibt es nicht eine einfach Fuktion wie "Dir" für DOS?
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#6

Re: Inhalt eines Ordners auslesen

  Alt 31. Mär 2009, 13:04
Das könnte aber auch andere Gründe haben. Der Source würde uns hier bei der Suche sicher helfen.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Inhalt eines Ordners auslesen

  Alt 31. Mär 2009, 13:05
Zitat von chilledcroete:
Nein die Funktion liegt in der Unit FileCtrl.
Ok, In D5 wars noch in der anderen Unit.

Zitat von chilledcroete:
Das Programm funktioniert aber auch zur Laufzeit nicht. Es stürzt ab und im Taskmanager steht, das es keine Rückmeldung mehr liefert.
Was nun? Stürzt es ab oder sagt der taskmanager das keine Rückmeldungen mehr kommen. Durchsuchst du nämlich einen großen Verzeichnisbaum könnte sowas der Task Manager schon behaubten weil das programm beschäftigt ist.

Die Funktion aus der CodeLib funktioniert jedenfalls.

Zitat von chilledcroete:
Gibt es nicht eine einfach Fuktion wie "Dir" für DOS?
Ja. Siehe CodeLib-Beispiel. Oder nimm das Control TShellListView aus der Reiterseite "Beispiele" wenns nur für ein Verzeichnis ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.347 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Inhalt eines Ordners auslesen

  Alt 31. Mär 2009, 13:06
Zitat von chilledcroete:
Das Programm funktioniert aber auch zur Laufzeit nicht. Es stürzt ab und im Taskmanager steht, das es keine Rückmeldung mehr liefert.
Das dürfte daran liegen, dass es einfach die Unterordner mit einbeziehen soll und das dauert eben eine ganze Weile.

Wenn kein Application.ProcessMessages drin steht, dann reagiert das Programm derweil eben nicht mehr.

// EDIT:
DirectoryExists gibt es in SysUtils und FileCtrl:
http://docs.codegear.com/products/ra...oryExists.html
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  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
 
#9

Re: Inhalt eines Ordners auslesen

  Alt 31. Mär 2009, 13:10
Es gibt auch Möglichkeiten, bei denen du angeben kannst, ob Unterverzeichnisse (rekursiv) durchsucht werden sollen (achte auf das eingeklammerte Wort. ).
"dir" durchsucht keine Unterverzeichnisse, daher gehe ich davon aus, dass du das auch nicht haben möchtest.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von seim
seim

Registriert seit: 11. Nov 2007
83 Beiträge
 
#10

Re: Inhalt eines Ordners auslesen

  Alt 31. Mär 2009, 14:02
Delphi-Quellcode:
function ReadDir(Path, Mask: string; ShowDir, ShowFiles, ShowPath: boolean): TStringlist;
var SRec: TSearchRec;
    DateiListe: TStringList;
begin
  DateiListe := TStringList.Create;

  if Path[length(Path)] <> '\then
    Path:=Path+'\';

  if ShowDir AND Showfiles then
    FindFirst(Path + Mask, faAnyFile, SRec)
  else if ShowFiles then
    FindFirst(Path + Mask, not faDirectory, SRec)
  else if ShowDir then
    FindFirst(Path + Mask, faDirectory, SRec);

  if (SRec.Name <> '.') AND (SRec.Name <> '..') AND (SRec.Name <> '') then
  begin
    if ShowPath then
      DateiListe.Add(Path + SRec.Name)
    else
      DateiListe.Add(SRec.Name);
  end;
  while FindNext(SRec) = 0 do
  begin
    if (SRec.Name <> '.') AND (SRec.Name <> '..') AND (SRec.Name <> '') then
    begin
      if ShowPath then
        DateiListe.Add(Path + SRec.Name)
      else
        DateiListe.Add(SRec.Name);
    end;
  end;
  FindClose(SRec);
  Result := DateiListe;
end;
Allerdings nicht Rekursiv.. wenn du das selbst einbaust kannste ja den Code uppen

VerzInhalt:= ReadDir(dir,'*.*',false,true,true);
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:33 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