Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Dateien von einem Ftp server runter/hochladen (https://www.delphipraxis.net/101401-dateien-von-einem-ftp-server-runter-hochladen.html)

Klaus01 22. Okt 2007 17:01

Re: Dateien von einem Ftp server runter/hochladen
 
Delphi-Quellcode:
procedure TForm1.connectbutClick(Sender: TObject);
var
  i:integer;
  name:string;
begin
  if idftp1.connected=false then
    begin
      idftp1.Username:='admin';
      idftp1.password:='******';
      idftp1.Host:='127.0.0.1';
      idftp1.connect;
      IdFTP1.List(ListBox1.Items);
      for i:=0 to Listbox1.Count-1 do
        begin
          name:=listbox1.Items[i];
          listbox2.Items.Add(name);
          if SaveDialog1.Execute then
            begin
              ShowMessage(name);
              IdFTP1.Get(Name, SaveDialog1.FileName, true);
            end;
        end
    end;
end;
Wenn Du den Code so änderst, stimmt dann der Name in der Messagebox mit dem Namen in der Listbox überein.

Grüße
Klaus

Time2Play 22. Okt 2007 18:42

Re: Dateien von einem Ftp server runter/hochladen
 
Jap stimmt überein, wobei mich bissle wundert das z.B. die Datei Anleitung.txt auch inner Listbox "-r--r--r-1 ftp ftp 6677 Jul 30 2001 Anleitung.txt" heißt.

OldGrumpy 22. Okt 2007 19:35

Re: Dateien von einem Ftp server runter/hochladen
 
Zitat:

Zitat von Time2Play
Jap stimmt überein, wobei mich bissle wundert das z.B. die Datei Anleitung.txt auch inner Listbox "-r--r--r-1 ftp ftp 6677 Jul 30 2001 Anleitung.txt" heißt.

Na dann kann das ja auch nix werden. Natürlich kennt der Server keine Datei die so heisst. In den Anführungszeichen steht ja nicht nur der eigentliche Dateiname sondern noch jede Menge anderer Kram wie Datum, Dateigröße, erlaubte Zugriffsrechte, usw. - Du brauchst also entweder was was Dir den Dateinamen einzeln präsentiert oder musst Dir einen Parser bauen. Wobei ich mir nicht sicher bin ob die Ausgabe da oben für jeden FTP-Server gleich wäre, das könnte also aufwendig werden.

Statt des nackten Listings bietet TIdFTP aber auch die Möglichkeit über das Property DirectoryListing auf eine fertig durch einen Parser aufbereitete Liste mit einzelnen Werten zuzugreifen. Die Doku dazu ist recht umfangreich und ich hab nur mal kurz quergelesen, aber dort bekommst Du auch den Dateinamen als einzelnes Element geliefert.

Time2Play 22. Okt 2007 19:45

Re: Dateien von einem Ftp server runter/hochladen
 
Danke schonmal, kannst du mir noch bitte sagen wo ich die Doku über TidFTP finde?

mkinzler 22. Okt 2007 19:48

Re: Dateien von einem Ftp server runter/hochladen
 
http://www.dsdt.info/tutorials/indy/
http://www.indyproject.org/Sockets/index.DE.aspx

Time2Play 22. Okt 2007 21:42

Re: Dateien von einem Ftp server runter/hochladen
 
Ich habs aber genauso wie da gemacht:
http://www.dsdt.info/tutorials/indy/?page=4&x=4&y=5

IdFTP1.List(DirectoryListBox.Items);

Genau so hab ichs gemacht, bei dem Beispiel bekommen die aber auch nicht den exaten Namen, sondern nur alles zusammen (datum etc.)

OldGrumpy 22. Okt 2007 22:17

Re: Dateien von einem Ftp server runter/hochladen
 
Ja, das Beispiel da ist etwas zusammengestückelt, Download und Upload sind komplett separat gehalten, die Listbox darüber dient lediglich der (durch Proportionalfont ohne Spaltenanordnung etwas verhackstückten) Anzeige der Verzeichnisinhalte auf dem Server. Wenn Du genau hinschaust, gibt es zwischen den drei Teilen Anzeige, Upload und Download keine direkte Verbindung!

Time2Play 23. Okt 2007 00:33

Re: Dateien von einem Ftp server runter/hochladen
 
Ja das weiß ich, du meintes aber das man damit den wirklichen Namen der Datei herausfinden könnte, bei dem Beispiel sieht er die Datei jedoch auch nur mit Datum und so weiter, also genauso viel wie ich zurzeit auch.

OldGrumpy 23. Okt 2007 12:53

Re: Dateien von einem Ftp server runter/hochladen
 
Das "Sehen" ist ja nicht das Problem. Der Trick ist, dass der Inhalt der Liste nur zur Anzeige genutzt wird, nicht fürs Downloaden. Um einen in der Liste ausgewählten Titel herunterzuladen muss man die ganze Liste anders aufsetzen und das oben erwähnte Property benutzen um die Elemente jeder Zeile einzeln zu bekommen. Ich hab jetzt leider wirklich keine Zeit, Dir das alles vorzukauen, lies die Indy-Doku und experimentiere, so lernst Du am meisten dabei. Programmieren besteht zu einem nicht unwesentlichen Teil aus hartnäckigem Erarbeiten von Wissen, es ist nicht damit getan, sich einfach ein beliebiges Demo zu schnappen und an dessen Details herumzuschrauben. Benutz die Demos nur dazu, Dir Anregungen zu holen ("wie ist das da wohl gelöst?"), aber entwickel dann Deinen eigenen Code für das Problem. Das fällt anfangs schwer, aber wer sich nicht entmutigen lässt, sammelt damit massiv Erfahrungswerte die einem danach immer wieder zugute kommen. Je mehr Du selber ausprobierst und experimentierst, desto besser und erfolgreicher wirst Du programmieren können, um es einmal kurz und knapp zu formulieren.

SandStein 24. Okt 2007 12:47

Re: Dateien von einem Ftp server runter/hochladen
 
Also ich habe mir die Filenames einfach so rausgeholt:

Delphi-Quellcode:
  idftp.List (memo1.Lines,'',false);
Dann sind keine Nebeninfos mehr drin, dur die Dateinamen; so solltest Du auf jeden fall auch die Namen auslesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.
Seite 3 von 5     123 45      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz