AGB  ·  Datenschutz  ·  Impressum  







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

Dateien und Ordner auflisten als XML

Ein Thema von SaFu · begonnen am 21. Feb 2009 · letzter Beitrag vom 21. Feb 2009
Antwort Antwort
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#1

Dateien und Ordner auflisten als XML

  Alt 21. Feb 2009, 01:31
Abend,

Und zwar habe ich folgendes Problem, ich möchte gerne Ordner und die darin liegenden Dateien auflisten lassen und zwar in einer XML Strucktur.

Wenn ich z.b. so eine Ordnerstrucktur habe
Delphi-Quellcode:
Ordner1
 -MeineDatei1
 -MeineDatei2
 -MeineDatei3
 
 -Ordner2
  -DeineDatei1
  -DeineDatei2
  -DeineDatei3
  -DeineDatei4
 
 -Ordner3
  -SeineDatei1
  -SeineDatei2
Dann muss ich jetzt per FindFirst und FindNext alle Ordner und Dateien ermitteln.

Aber wie bekomme ich als ergebnis diese Strucktur

Im Hauptverzeichnis Ordner1

Delphi-Quellcode:
<files> // dieses File nur im obersten Ordner anstatt des Ordnernamens
 <FileName>MeineDatei1</fileName>
 <FileName>MeineDatei2</fileName>
 <FileName>MeineDatei3</fileName>
</files>

<Ordner2> // hier der Ordnername weil es ein Unterverzeichnis ist
 <FileName>Ordner2/MeineDatei1</fileName>
 <FileName>Ordner2/MeineDatei2</fileName>
 <FileName>Ordner2/MeineDatei3</fileName>
 <FileName>Ordner2/MeineDatei4</fileName>
</Ordner2>

<Ordner3> // hier der Ordnername weil es ein Unterverzeichnis ist
 <FileName>Ordner3/MeineDatei1</fileName>
 <FileName>Ordner3/MeineDatei2</fileName>
</Ordner3>
usw.

So bekomme ich alle Dateien aufgelistet aber nur ohne die Unterverzeichnisse

Delphi-Quellcode:
procedure FileList(const APath, AExt: string; ARecurse: Boolean; AList: TStrings);
var
  F : TSearchRec;
  Path : string;
begin
  Path := IncludeTrailingPathDelimiter(APath); // nur für Delphi 4 und höher!
  if (ARecurse) and (FindFirst(Path + '*.*', faAnyFile, F) = 0) then
  try
    repeat
      if (F.Name <> '.') and (F.Name <> '..') and ((F.Attr and faDirectory) = faDirectory) then
        FileList(Path + F.Name, AExt, ARecurse, AList);
    until
     FindNext(F) <> 0;
  finally
    FindClose(F);
  end;
  if FindFirst(Path + AExt, faAnyFile, F) = 0 then
  try
    repeat
      if (F.Name <> '.') and (F.Name <> '..') and ((F.Attr and faDirectory) <> faDirectory) then
        AList.Add(Path + F.Name);
    until
     FindNext(F) <> 0;
  finally
    FindClose(F);
  end;
end;

procedure TfrmTemplateerstellen.btn1Click(Sender: TObject);
var i: integer;
s :TStringList;
begin
  s:= TStringList.Create();
  try
    Mmo1.Lines.BeginUpdate;
    try
      Mmo1.Lines.Clear;
      FileList(IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)) + edtDirectoryName.Text) ,'*.*',True,s);
      for i := 0 to Pred(s.Count) do
        Mmo1.Lines.Add('<filename>'+ExtractFileName(s[i])+'</filename>');
    finally
      Mmo1.Lines.EndUpdate;
    end;
  finally
    s.Free;
  end;
end;
Danke im voraus
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Dateien und Ordner auflisten als XML

  Alt 21. Feb 2009, 02:01
Rat mal wofür der Parameter ARecurse steht...
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: Dateien und Ordner auflisten als XML

  Alt 21. Feb 2009, 09:25
Der steht aber auf true.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#4

Re: Dateien und Ordner auflisten als XML

  Alt 21. Feb 2009, 09:41
Hallo Sascha,

vieleicht nicht das eleganteste:

- in FileListbox1 alle Ordner auflisten in FileListBox2 den Inhalt des Ordners dazu.
- beim Erzeugen der XML die File Listboxen durchlaufen und in die entsprechende Form bringen
- Wenn der Index der FileListBox1 auf 0 steht trägst du als Wert einfach was anderes ein als den Ordnernamen.
...der erste Eintrag soll ja anders sein oder ?

bis dann...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: Dateien und Ordner auflisten als XML

  Alt 21. Feb 2009, 09:47
Jetzt hab ich das Problem erst verstanden
Delphi-Quellcode:
procedure TfrmTemplateerstellen.btn1Click(Sender: TObject);
var i: integer;
    s :TStringList;
    sPath: string;
begin
  s:= TStringList.Create();
  try
    Mmo1.Lines.BeginUpdate;
    try
      Mmo1.Lines.Clear;
      sPath := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)) + edtDirectoryName.Text);
      FileList(sPath ,'*.*',True,s);
      for i := 0 to Pred(s.Count) do
        Mmo1.Lines.Add('<filename>'+Copy(s[i],Length(sPath) + 1,Length(s[i]))+'</filename>');
    finally
      Mmo1.Lines.EndUpdate;
    end;
  finally
    s.Free;
  end;
end;
Ungetestet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#6

Re: Dateien und Ordner auflisten als XML

  Alt 21. Feb 2009, 14:37
Zitat:
Jetzt hab ich das Problem erst verstanden
...du glücklicher !
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Dateien und Ordner auflisten als XML

  Alt 21. Feb 2009, 14:46
Danke genau so war es gemeint
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  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 19:43 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