Entwickler-Ecke
Internet / Netzwerk - FTP Dateien auf Server auflisten mit Ordner
Nano-Ware - Mi 11.08.10 18:42
Titel: FTP Dateien auf Server auflisten mit Ordner
Hey
wie soll das gehen, also einen kleinen Explorer für FTP. Wie geht das? Ich muss dazu sagen dass ich nichteinmal einen Explorer für das Betriebssystem schreiben ;D Also währe nett wenn ihr das für einen 13 jährigen erklären könntet ;D
elundril - Mi 11.08.10 18:46
Du könntest die TIdFTP-Komponente von den Indys verwenden. Dazu gibt in der Delphi-Praxis sicher ein paar Tutorials.
lg elundril
Nano-Ware - Mi 11.08.10 18:48
Ich hab da schon geschaut ... Aber leider nichts gefunden .. Ich hab nichtmal einen kleinen Ansatz
Nano-Ware - Mi 11.08.10 19:02
Sorry ... Ich hab mir das jetzt angeschaut ich kann es leider erst morgen ausprobieren aber an einer stelle ist ja beschrieben wie man den Inhalt einer Verzeichnisses anzeigt
1. Werden da auch die enthaltenen Ordner angezeigt?
2. Wie unterscheide ich da Ordner und Dateien?
Vielen Dank schonmal und nochmal sorry ;D
elundril - Mi 11.08.10 19:05
nein enthaltene Ordner werden mit "Verzeichnisinhalt in Listbox" angezeigt.
Delphi-Quelltext
1:
| IdFTP1.List(DirectoryListBox.Items); |
Da du es gleich in die DirectoryListBox ausgeben lässt, siehst du ja was Verzeichnis ist und was nicht.
Lesen, denken, posten. Diese Reihenfolge wenn ich bitten darf.
lg elundril
Nano-Ware - Mi 11.08.10 19:13
Ich hab ein Problem ... Ich habe es genau so gemacht wie es auf der Seite beschrieben wird... Das "connecten" funktioniert, nur wenn ich die Items in der Directory Listbox auflisten will kommt der Fehler:
"Unable to service PORT commands"
MaPsTaR - Mi 11.08.10 23:07
Ich habe auch ein Problem...
Ich kann mit deinem letzten Post nichts anfangen.
Sollen wir jetzt raten, bis wir den Fehler gefunden haben?
Wie wäre es, wenn du mal den entsprechenden Code postest und uns eventuell mitteilst, welche Werte du in die Komponente eingetragen hast?
Nano-Ware - Mi 11.08.10 23:17
Das ist mein "Testcode"
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm4.Button1Click(Sender: TObject); begin IdFTP1.Username := '*****'; IdFTP1.Password := '*****'; IdFTP1.Host := '*****'; IdFTP1.Connect;
IdFTP1.List(DirectoryListBox1.Items); end; |
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
MaPsTaR - Mi 11.08.10 23:34
Ich kann den Fehler leider nicht reproduzieren.
Dein Code läuft so, wie er da steht...
Hast du irgendwas im Objektinspektor verändert?
Greifst du auch wirklich auf einen FTP-Server zu?
Nano-Ware - Mi 11.08.10 23:46
Ja das mache ich ... In FileZilla geht das mit den Angaben ...
MaPsTaR - Mi 11.08.10 23:51
Ändere mal im Objektinspektor den Wert "Passive" von IdFTP1 auf true.
Nano-Ware - Mi 11.08.10 23:57
Jetzt geht es danke, aber was hat das geändert? o.ö
jetzt gibt es doch noch ein kleines Problem ... in der Directory Listbox ist jetzt alles aufgelistet nur noch ein 0100 oder so davor und so komische Buchstaben... dann die Datei oder der Ordner wie kann ich damit erkennen ob es ein Ordner oder eine Datei ist?
Also das scheinen ja Informationen zu sei währe nett wenn du mir da noch helfen könntest
-rw-r--r-- 1 10011 10011 717 Jul 1 2009 bild.jpg
^- keine Ahnung-------------^ Größe --^ ^--Name
and der Rest? ;D
MaPsTaR - Do 12.08.10 00:10
http://de.wikipedia.org/wiki/File_Transfer_Protocol
Falls du die ausblenden willst...
Wäre vielleicht praktisch, wenn du dir die Parameter von den Prozeduren, die du verwendest ansiehst ;-)
Delphi-Quelltext
1:
| IdFTP1.List(DirectoryListBox1.Items, '', false); |
An erster Stelle stehen die Zugriffsrechte
rw = Lesen und schreiben
r = nur lesen
und vor dem Dateinamen das Änderungsdatum.
Der Rest sagt mir jetzt auch nichts.
Nano-Ware - Do 12.08.10 00:18
Und was ist damit? drwxr-xr-x 2 10011 10011 4096 Dec 5 2009 Mail
Und nochwas... funktioniert das Passive FTP bei jedem Server zu 100% oder muss ich immer erst Activ versuchen und falls das nicht geht passiv verwenden?
Narses - Do 12.08.10 00:24
Moin!
Nano-Ware hat folgendes geschrieben : |
| Und was ist damit? drwxr-xr-x 2 10011 10011 4096 Dec 5 2009 Mail |
AFAIR ist das (Detail-)List-Format bei FTP nicht definiert, das kann der Server machen, wie er lustig ist. Im Zweifel Standard-List und Detail-Liste holen und dann abgleichen. :idea:
Nano-Ware hat folgendes geschrieben : |
| Und nochwas... funktioniert das Passive FTP bei jedem Server zu 100% oder muss ich immer erst Activ versuchen und falls das nicht geht passiv verwenden? |
Wie wäre es, wenn du dich informierst, was diese Option tut? Wenn du das verstanden hast, dann sollte auch klar sein, wann und warum das nötig ist... :les: :think: ;)
cu
Narses
MaPsTaR - Do 12.08.10 00:25
Das "d" an erster Stelle scheint für "directory" zu stehen, damit könntest du zwischen Verzeichnis und Datei unterscheiden...
Nano-Ware - Do 12.08.10 00:30
Vielen Dank erstmal... ich hab mir das von Wikipedia schon vorher ganz durchgelesen.. ich kanne mich leider mit dem FTP nich so aus so wie ich das verstanden hab erst Activ dann Passiv und nicht immer Passiv ist das richtig?
Narses - Do 12.08.10 00:33
Moin!
Nano-Ware hat folgendes geschrieben : |
| ich kanne mich leider mit dem FTP nich so aus |
Das hat genau genommen ja auch nix mit FTP zu tun. :zwinker:
Nano-Ware hat folgendes geschrieben : |
| so wie ich das verstanden hab erst Activ dann Passiv und nicht immer Passiv ist das richtig? |
Da dein Programm nicht wissen kann, in welcher Umgebung es arbeitet, würde ich sowas als User-Option für einen Server anbieten. :idea:
cu
Narses
Nano-Ware - Do 12.08.10 00:37
Useroption für den Server? ;D ssry ich versteh garnix^^
Narses - Do 12.08.10 00:40
Moin!
Nun, du überlässt es dem User für einen bestimmten Server anzugeben, ob der Client aktive oder passive Verbindungen verwenden soll. Was ist daran unklar? :gruebel:
cu
Narses
Nano-Ware - Do 12.08.10 00:44
Achso sry ;D Und wie macht das FileZilla? Soweit ich weiß gibt an da nichts dergleichen an ...
ALF - Do 12.08.10 01:40
Nano-Ware hat folgendes geschrieben : |
| Und was ist damit? drwxr-xr-x 2 10011 10011 4096 Dec 5 2009 Mail |
drw wurde schon genannt.
Das x steht für e
xecute, ausführbar oder öffnen von Verzeichnissen.
Die ersten drei rwx für den User, die nächsten 3 für die Gruppe, die letzten 3 für andere.
Das - steht dafür, das nichts gesetzt ist.
Die 100 ist der jeweilige User, 11 steht für die Gruppe(n).
4096 ist Belegung an Platz auf der Festplatte also 4Kb für den Eintrag des Verzeichniss.
Weitere Informationen beim Zugriff über FTP und die Anzeigen, lassen sich auch alle bei Google finden. :wink:. Passiv und Aktiv lassen sich dort auch finden.
Wenn man schon damit arbeiten will :wink:
Gruss Alf
Gerd Kayser - Do 12.08.10 02:49
ALF hat folgendes geschrieben : |
Nano-Ware hat folgendes geschrieben : | | Und was ist damit? drwxr-xr-x 2 10011 10011 4096 Dec 5 2009 Mail | Die 100 ist der jeweilige User, 11 steht für die Gruppe(n). |
10011 ist doppelt aufgeführt. Also steht das erste 10011 für die Usergruppe und das zweite 10011 für den User. In diesem Fall sind also der Gruppenname und der Username identisch (z. B. dbtest.dbtest).
Und die "2" vor der Usergruppe steht für den hard-link-count.
Als erstes Zeichen sind statt "d" (für Directory) und "-" (normale Datei) auch noch andere Einträge möglich (z. B. für blocked devices, Links usw.).
Siehe:
http://en.wikipedia.org/wiki/Ls
ALF - Do 12.08.10 03:10
Hi,
Gerd Kayser ,ein bischen wollte ich ihm ja auch noch selber rausfinden lassen :mrgreen:
Gruss Alf
Nano-Ware - Do 12.08.10 11:18
Leute vielen Dank das hab ich jetzt wirklich verstanden.. es tut mir sehr leid ich habe ja schließlich auch in Google gesucht nur hatte ich zB keine Ahnung, das Activ und Passiv hier eine bedeutung haben..
Nur eine Frage besteht noch ... Wie macht das FileZilla?
Dude566 - Do 12.08.10 13:02
Ist doch OpenSource. ;)
Nano-Ware - Do 12.08.10 14:00
Währ mir zu kompliziert ;D die arbeiten sicher net mit Indy ;D
ALF - Do 12.08.10 15:45
Nano-Ware hat folgendes geschrieben : |
| Nur eine Frage besteht noch ... Wie macht das FileZilla? |
Bei FileZilla nennt sich diese Einstellung glaube ich, dauerhafte Verbindung herstellen = Akitv.
Gruss Alf
Nano-Ware - Fr 13.08.10 00:09
Sry aber was heißt das? ;D Dauerhafte Verbindung?
Thx schonmal ;D
Narses - Fr 13.08.10 00:15
Moin!
Ich rate jetzt mal: "dauerhafte Verbindung" soll wohl session-keep-alive sein, also sendet der Client in regelmäßigen Abständen (notfalls) ein (Dummy-)Paket, damit der Server die Verbindung nicht von sich aus beendet. :nixweiss:
Das hat IMHO nix mit passiven Transfers zu tun.
cu
Narses
jaenicke - Fr 13.08.10 00:56
MaPsTaR hat folgendes geschrieben : |
| Das "d" an erster Stelle scheint für "directory" zu stehen, damit könntest du zwischen Verzeichnis und Datei unterscheiden... |
Man könnte natürlich auch die einfache Variante nehmen und TIdFTP selber parsen lassen...
Dafür gibts die Eigenschaft DirectoryListing. Da nimmt das Indy schon auseinander.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!