AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IdFTP: Alles auflisten
Thema durchsuchen
Ansicht
Themen-Optionen

IdFTP: Alles auflisten

Ein Thema von Z4ppy · begonnen am 6. Apr 2009 · letzter Beitrag vom 2. Sep 2010
Antwort Antwort
Seite 1 von 2  1 2      
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#1

IdFTP: Alles auflisten

  Alt 6. Apr 2009, 01:27
Ich suche nach einer Methode, alles auf einem FTP aufzulisten (in einer TStringList)... Dabei möchte ich sowohl nur Dateien, als auch nur Ordner (bzw. die untersten Unterordner) auflisten können. Ich nenn meine Funktion jetz einfach mal auflisten(var a:TStringList; folder:boolean); - wenn folder true ist, werden die untersten Unterordner aufgelistet, wenn folder false ist, die Dateien...

Beispiel:
foldera
--folderaa
----aaa.dat
----aab.dat
--aa.dat
folderb
--folderba
----folderbaa
------folderbaaa
----baa.dat

auflisten(a,false):
Code:
foldera/folderaa/aaa.dat
foldera/folderaa/aab.dat
foldera/aa.dat
folderb/folderba/baa.dat
auflisten(a,true):
Code:
foldera/folderaa
folderb/folderba/folderbaa/folderbaaa
Ich hab irgendwie überhaupt keine Ahnung, wie ich das am besten angehen soll

MfG Z4ppy

PS: In welcher Reihenfolge das Resultat zurückgegeben wird, ist mir ziemlich wurst. Hauptsache, es kommen exakt diese Strings zurück (und keine anderen) ^^
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

Re: IdFTP: Alles auflisten

  Alt 6. Apr 2009, 06:45
Zitat von Z4ppy:
Ich suche nach einer Methode, alles auf einem FTP aufzulisten (in einer TStringList)...
BTVisualFTP enthält Funktionen zum rekursiven Einlesen von Verzeichnissen:

http://sourceforge.net/projects/btvisualftp/

http://btvisualftp.sourceforge.net/

http://cc.embarcadero.com/Item/24525

Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: IdFTP: Alles auflisten

  Alt 6. Apr 2009, 21:38
Kannst du mir sagen, in welcher Unit die Funktion ist und wie sie heisst?

MfG Z4ppy
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#4

Re: IdFTP: Alles auflisten

  Alt 6. Apr 2009, 21:48
Zitat von Z4ppy:
Kannst du mir sagen, in welcher Unit die Funktion ist und wie sie heisst?

MfG Z4ppy
Schau mal in FtpBatchProcessing.pas, procedure TFtpFileCollector.Collect enthält eventuell manches brauchbares.

Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: IdFTP: Alles auflisten

  Alt 8. Apr 2009, 15:25
Hardgecodet konnte ich es nun lösen - hardgecodet heisst in diesem Fall, dass es nur mit einem Server funktioniert Auf die genaueren Umstände geh ich jetzt mal nicht ein...

Wie kann ich denn nur die Ordner auflisten?
Mein Ansatz war erstmal: Ich liste auf (mit Details), gucke ob das erste Zeichen ein d ist und extrahiere dann den Namen. Die ersten Schritte gehen auch ohne weiteres, nur kriege ich es einfach nicht gebacken, den Namen zu extrahieren... Wie muss man das lösen? Extrahiert man von hinten her bis zum ersten Leerzeichen, dann hat man Probleme, wenn der Name Leerzeichen enthält. Extrahiert man von vorne, dann hat man Probleme, weil jeder Server die Daten so zurückliefert, wies ihm passt.

MfG Z4ppy
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: IdFTP: Alles auflisten

  Alt 21. Apr 2009, 17:03
Let's push it

MfG Z4ppy
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: IdFTP: Alles auflisten

  Alt 22. Apr 2009, 21:28
Guten Abend,

diesen Thread kennst Du schon?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: IdFTP: Alles auflisten

  Alt 22. Apr 2009, 21:33
Nein, kannte ich nicht, ist aber das gleiche Problem ^^
Das Problem is nämlich, dass du das hardcoded löst - der Ordnername fängt nämlich nicht immer beim Zeichen Nr. 57 an Ich hab hier 2 UNIX-Server, aufm einen isses Nr. 57, aufm andern Nr. 56
Man muss also irgendwie dynamisch erkennen, wo der Ordnername beginnt - und das ist genau mein Problem

MfG Z4ppy
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: IdFTP: Alles auflisten

  Alt 27. Apr 2009, 22:20
Guten Abend,

ein Vorschlag nach der Holzhammermethode:

Führe ein FTP.list ohne Details durch
speichere die File/Foldernamen in einer StringList.
Führe ein FTP.list mit Details durch.

Durchlaufe die erste Liste und schau
nach ob diese Einträge in der zweiten Liste
ein Eintrag d für Directory an der ersten Stelle
des Eintrags haben.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: IdFTP: Alles auflisten

  Alt 28. Apr 2009, 13:52
Das hab ich schon probiert aber es geht leider nicht. Denn beide Listen werden automatisch nach Name geordnet. Bei der Details-Liste wird das dann aber bestimmt nicht nach dem Namen des Ordners/der Datei geordnet, weil spätestens das Änderungsdatum überall anders ist und dann nach dem geordnet wird...

MfG Z4ppy
  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 06:53 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