Entwickler-Ecke
Internet / Netzwerk - FTP und Ordnerstrukturen auf dem Server
Felux - Mo 22.08.05 22:31
Titel: FTP und Ordnerstrukturen auf dem Server
Hi,
ich schrieb zur Zeit einen kleinen FTP Clienten und habe ein Problem: Ich will die Ordner auf dem Server mit Symbolen etc. wie im Windows Explorer anzeigen. Jetzt hab ich mir schon nen Wolf gesucht, und eine Komponente dafür gefunden, welche mit der IdFTP zusammenarbeitet. Einzigster Hacken: Sie funzt nicht mit Delphi 2005 Pro :( . Die Komponente ist von Betasoft. Nun, wie kann ich das anstellen, dass die FTP Struktur angezeigt bekomme? Google usw. auch das Forum hier haben nichts hilfreiches ausgespuckt.
Die Files bekomme ich noch mit
Delphi-Quelltext
1:
| IdFTP1.list(listbox1.items, '', false) |
hin, aber damit wird ja alles aufgelistet und es kann nicht unterschieden werden zwischen Dateien und Ordner. :( Hat wer eine Komponente die das macht und mit D2005 Prof kompatibel ist oder ein Tutorial wie man das am besten umsetzt?
Pierre - Mi 24.08.05 10:10
Hallo,
setz mal den Parameter false auf true.
Gruß Pierre
Pierre - Mi 24.08.05 10:16
Hallo,
habe übersehen, dass Du auch mehr Inhalt über FTP haben wolltest:
also hier was ist FTP, wie läuft es in der Software, Rechner,
Ports, Fehlermeldungen usw. ab:
http://www.elektronik-kompendium.de/sites/net/0902241.htm
und hier ein Tutorial für Delphi:
http://www.dsdt.info/tutorials/indy
Gleich auf dieser Seite ist auch der link zu den Indy-Komponenten,
die Du benutzt (laut Befehl). Dort findest Du die Referenz und super
viele Code-Beispiele (z.B. auch einen FTP-Client).
Gruß Pierre
Felux - Mi 24.08.05 11:55
Hi,
Danke für deine Antwort. Jedoch ist mein Problem nicht das Connecten auf den Server und die Liste, sondern ich will die Liste im Explorerlook haben(also mit Symbole usw.). Ich kenne das Tutorial auf dsdt und komme mit der Indy-Komponente auch zurecht(für kleiner Projekte sind die einfach zu hand haben :D ). Ich meine, gibt es eine Art TShelllistview für INDY 10 um Ordnerstrukturen auf einem FTP anzuzeigen?
Matthias-K - Mi 24.08.05 12:22
ja, die gibt es!
von mir geschrieben, nicht ganz ausgereift, und auch nicht umsonst! :wink:
wird in einem großen programm von mir verwendet!
kannst du dir aber auch slebst schreiben! ist nicht sehr schwer!
matthias
Martin1966 - Mi 24.08.05 12:35
Super Matthias! Und was kann Felux oder wir jetzt mit Deiner Antwort anfangen? :?
Lg Martin
Matthias-K - Mi 24.08.05 12:46
euch steht das von gott gegebene recht frei, sie zu kaufen!
oder du informiert dich, wie du diese liste verarbeiten kannst! und das wurde im forum schon zig mal besprochen!
matthias
Narses - Mi 24.08.05 12:54
Moin!
Matthias-K hat folgendes geschrieben: |
| euch steht das von gott gegebene recht frei, sie zu kaufen! |
IMHO ist Werbung hier ausserhalb der gekennzeichneten Bereiche verboten! :mahn:
Abgesehen davon - extrem hilfreiche Auskunft... mehr davon... :autsch:
cu/bn
Narses
Matthias-K - Mi 24.08.05 13:11
Matthias-K hat folgendes geschrieben: |
oder du informiert dich, wie du diese liste verarbeiten kannst! und das wurde im forum schon zig mal besprochen!
|
| Zitat: |
Abgesehen davon - extrem hilfreiche Auskunft... mehr davon...
|
die hilfe dazu hab ich gegeben! wenn man die suche nicht benutzt, ist es nicht meine schuld! und ich werde mich stark hüten, hier ständig meine sourcen für lau wegzuwerfen! wenn ich oder andere das immer machen würde, würden wir auf der straße landen! er findet hier im forum alles, was er braucht! ich hab selbst grad nochmal geschaut!
mal angenommen, ich veröffentliche hier die komponente, was hab ich davon?
ohja, er wird mir dankbar sein! aber seine dankbarkeit bezahlt nicht meine rechnungen! wir müssen schließlich alle von irgendwas leben und um gottes willen, ich helfe ja gerne, aber ich bin nicht dazu da, für andere die arbeit zu erledigen! das macht für mich auch keiner!
er brauch nur die liste zu verarbeiten und sich mal ne treeview kompo anschaun! dann ne kompo vom tshelltreeview ableiten und um die benötigten sachen erweitern! das ist ALLES hier im forum zu finden!
ich hab vor ein paar wochen bereits ein thema eröffnet, wo ich dies in ähnlichem sinn geschrieben habe! alle wollen sourcen, aber nie bezahlen! das ich mir den spaß auch erarbeitet habe, ist erstmal egal! oder was meint ihr?
zum thema werbung: ich habe keinen link, keinen preis oder sonstiges ausgeschrieben. damit ist das thema werbung erledigt!
Weitere beschwerden gehen per km an mich persöhnlich! vorausgesetzt, es ist eine auch nur halbwegs gute begründung angegeben!
matthias
Felux - Mi 24.08.05 16:13
Hi,
das einzigste was aus deinem Beitrag kam war für mich: Ich bin ein toller Programmierer und brauch jüngere , angehene Programmierer nicht zu unterstützen.
Dann gib mal die Topics preis, die du gefunden hast. Denn wen nich suche finde ich nichts wirklich vielsprechendes. Oder kannst du mal aufschreiben, wie ich die Liste zu verarbeiten hab? Denn was da steht, wenn ich die Details anschalte, ist für mich Bahnhof.
Was bedeutet den drwxr-xr-x in der Liste? :?:
Tino - Mi 24.08.05 16:17
So Leute, jetzt zum eigentlichen Thema zurück. Danke!
Felux - Do 25.08.05 22:42
Hi,
hab es nach ner Zeit(und viel lesen) selber rausbekommen, wie es geht. Natürlich sag ich auch noch wie ich es gemacht habe :) . Man benötigt dazu eine TListview und eine TListbox Komponente. Dann folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| procedure TForm1.ordnerstruktur; var i,k: Integer; exparr : TStringDynArray; icon : TIcon; fi : TSHFileInfo; begin ZeroMemory(@fi,sizeof(fi)); listview1.Clear;
icon := TIcon.Create;
IdFTP1.List(listbox1.items, '', false);
for i := 0 to listbox1.Count - 1 do begin if pos('.', listbox1.Items.Strings[i]) = 0 then begin listview1.AddItem(Listbox1.Items.Strings[i], listview1); fi.hIcon:= ExtractIcon(hInstance, 'shell32.dll', 3); icon.Handle := fi.hIcon; listview1.Items.Item[listview1.Items.Count-1].ImageIndex:= imagelist1.AddIcon(icon); end; end;
for i := 0 to listbox1.Count - 1 do begin if pos('.', listbox1.Items.Strings[i]) > 0 then begin listview1.AddItem(Listbox1.Items.Strings[i], listview1); exparr:=explode('.', Listbox1.Items.Strings[i]); SHGetFileInfo(pchar('.'+exparr[length(exparr)-1]), FILE_ATTRIBUTE_NORMAL,fi,sizeof(fi), SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES); icon.Handle := fi.hIcon; listview1.Items.Item[listview1.Items.Count-1].ImageIndex:= imagelist1.AddIcon(icon); end; end;
Icon.Free; end; |
Man kann die Ordner sogar noch sortieren, in dem man den Eigenschaft Sorted bei der Listbox auf true setzt. Hoffe, ich hab jetzt einigen Anfänger noch geholfen, die damit auch ein Problem hatten. :)
Der Code ist vielleicht nicht sehr schnell, aber er ist ein guter Anfang.
Die Explodefunktion kann man durch Google oder hier im Forum durch die Suche finden. :)
japetos - Mi 21.09.05 15:08
was hat ListBox & ListView
mit TTreeView zu tun?
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!