AGB  ·  Datenschutz  ·  Impressum  







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

Per Indy-FTP gantzen Ordener downlorden?

Ein Thema von Deltachaos · begonnen am 2. Mai 2008 · letzter Beitrag vom 4. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#1

Per Indy-FTP gantzen Ordener downlorden?

  Alt 2. Mai 2008, 13:30
Ich möchte ein 'Backup' programm für meine Hompage schreiben.
Ist ja auch nicht so das Problem. nur ich wein nicht wie ich einen gantzen ordner downlorden kann.

Biss jetzt habe ich das
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var Present: TDateTime;
     Year, Month, Day: Word;
begin
// DecodeDate(Present, Year, Month, Day);
  form1.Show;
  form1.Label1.Caption:='Setze Port...';
  form1.IdFTP1.Port:=21;
  form1.Label1.Caption:='Übertrage Username...';
  form1.IdFTP1.Username:='tja';
  form1.Label1.Caption:='Übertrage Password...';
  form1.IdFTP1.Password:='tja';
  form1.Label1.Caption:='Verbinde mit Host...';
  form1.IdFTP1.Host:='fos-clan.com';
  form1.Label1.Caption:='Host-setzen fertig! Warte auf Antwort vom Server...';
  form1.IdFTP1.Connect;
  form1.Label1.Caption:='Verbindung Hergestellt!';
end;
Maximilian Ruta
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Per Indy-FTP gantzen Ordener downlorden?

  Alt 2. Mai 2008, 17:42
Hallo Maximilian,

du wirst dir mit der Methode List() die Namen der Dateien im Verzeichnis besorgen und diese dann einzeln mittels Get() holen müssen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#3

Re: Per Indy-FTP gantzen Ordener downlorden?

  Alt 2. Mai 2008, 21:02
Zitat von marabu:
Hallo Maximilian,

du wirst dir mit der Methode List() die Namen der Dateien im Verzeichnis besorgen und diese dann einzeln mittels Get() holen müssen.

Grüße vom marabu
ah danke
Maximilian Ruta
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#4

Re: Per Indy-FTP gantzen Ordener downlorden?

  Alt 2. Mai 2008, 21:52
Zitat von Deltachaos:
Zitat von marabu:
Hallo Maximilian,

du wirst dir mit der Methode List() die Namen der Dateien im Verzeichnis besorgen und diese dann einzeln mittels Get() holen müssen.

Grüße vom marabu
ah danke
irgendwie ist mir das noch so ne bisschen zu ungenau.

Ich hab biss etz das:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var slist: TStrings;
begin
  SList := TStringList.Create;
  IdFTP1.List(slist,'*',false);
  Listbox1.Items:=sList;
end;
Verbindung usw. natürlich vorausgesetzt.
Ich sehe ja auch die Ordner und dateien aber sie soll das program wisse was ein ordner ist und was nicht an der endung oder keine endung=ordner endung=Datei.
gut ok dan lässt man in den ordner wechseln und da dan nochml lesen!
Auserdem habe ich noch nie mit Listboxen gearbeitet.

Kann ich ein kleinen Denkanstos haben?
Maximilian Ruta
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Per Indy-FTP gantzen Ordener downlorden?

  Alt 2. Mai 2008, 22:35
Hier dein Denkanstoß:

Delphi-Quellcode:
procedure GetFilenames(ftp: TIdFtp; const mask: string; s: TStrings);
var
  i: Integer;
  items: {IdFtpList.}TIdFtpListItems;
begin
  s.BeginUpdate;
  try
    s.Clear;
    FTP.List(nil, mask, True);
    items := FTP.DirectoryListing;
    for i := 0 to Pred(items.Count) do
      if items[i].ItemType = ditFile then
        s.Add(items[i].FileName);
  finally
    s.EndUpdate;
  end;
end;
Getippt und nicht getestet.

Gute Nacht.
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#6

Re: Per Indy-FTP gantzen Ordener downlorden?

  Alt 3. Mai 2008, 09:52
Zitat von marabu:
Hier dein Denkanstoß:

Getippt und nicht getestet.

Gute Nacht.
Schon in der erstten zeile ist ein fehler.

Code:
[Fehler] Unit1.pas(64): Undefinierter Bezeichner: 'TIdFTPListItems'
Maximilian Ruta
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Per Indy-FTP gantzen Ordener downlorden?

  Alt 3. Mai 2008, 10:03
Zitat:
...
Schon in der erstten zeile ist ein fehler.

Code:
[Fehler] Unit1.pas(64): Undefinierter Bezeichner: 'TIdFTPListItems'
Hallo, vielleicht solltest Du noch die Unit einbinden.

uses IdFTPList;
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#8

Re: Per Indy-FTP gantzen Ordener downlorden?

  Alt 3. Mai 2008, 10:23
Zitat von Der.Kaktus:
Zitat:
...
Schon in der erstten zeile ist ein fehler.

Code:
[Fehler] Unit1.pas(64): Undefinierter Bezeichner: 'TIdFTPListItems'
Hallo, vielleicht solltest Du noch die Unit einbinden.

uses IdFTPList;
hab ich jetzt gemacht. funktionirt ja soweit.

aber es werden ja nur die Daten des Hauptverzeichnisses gelistet.

sol aber etwa so werden:

Code:
index.php
blabla.irgentwas
ordner/blabla.irgentwas
ordner/ordner/blabla.irgentwas
u.s.w.

Das problem ich weis weder Anzahl der Daten noch anzahl der Ordner und Unterordner.
Maximilian Ruta
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Per Indy-FTP gantzen Ordener downlorden?

  Alt 3. Mai 2008, 10:30
Schonmal gesucht? hier wurde ein Code gepostet, mit dem ein Ordner auf einem FTP-Server rekursiv durchsucht und das Ergebnis aufgelistet wird. Wenn du das dann hast, sollte das downloaden auch nicht mehr schwer sein.

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#10

Re: Per Indy-FTP gantzen Ordener downlorden?

  Alt 3. Mai 2008, 11:29
Zitat von Fussball-Robby:
Schonmal gesucht? hier wurde ein Code gepostet, mit dem ein Ordner auf einem FTP-Server rekursiv durchsucht und das Ergebnis aufgelistet wird. Wenn du das dann hast, sollte das downloaden auch nicht mehr schwer sein.

Mfg
hm, eigenlich hatte ich schon gesucht.
Irgendwie funktionirt das bei mir ich so wirklich. eigentlich gar nicht.

Delphi-Quellcode:
procedure FindAllFilesFTP(FTPCon: TIdFTP; Directory: String; FileList,DirList: TStrings; WithSubDirs, ClearList: Boolean);
  procedure ScanDir(const Directory,SubDir: String; WithDir: Boolean);
  var
    i: Integer;
  begin
    FTPCon.ChangeDir(Directory + SubDir);
    FTPCon.List(filelist);
    for i := 2 to FTPCon.DirectoryListing.Count-1 do
      if FTPCon.DirectoryListing.Items[i].ItemType = ditFile then
      begin
        if WithDir then FileList.Add(SubDir + FTPCon.DirectoryListing.Items[i].FileName)
        else FileList.Add(FTPCon.DirectoryListing.Items[i].FileName);
      end else if FTPCon.DirectoryListing.Items[i].ItemType = ditDirectory then
        DirList.Add(SubDir + FTPCon.DirectoryListing.Items[i].FileName + '/');

    if WithSubDirs then
    begin
      for i := 2 to FTPCon.DirectoryListing.Count-1 do
        if FTPCon.DirectoryListing.Items[i].ItemType = ditDirectory then
          ScanDir(Directory + SubDir,FTPCon.DirectoryListing.Items[i].FileName + '/',True);
    end;
  end;

begin
  if not FTPCon.Connected then Exit;
  FileList.BeginUpdate;
  DirList.BeginUpdate;
  try
    if ClearList then
    begin
      FileList.Clear;
      DirList.Clear;
    end;
    if Directory = 'then Exit;
    if Directory[Length(Directory)] <> '/then
      Directory := Directory + '/';
    ScanDir(Directory,'',False);
  finally
    DirList.EndUpdate;
    FileList.EndUpdate;
  end;
end;


procedure TForm1.Button4Click(Sender: TObject);
var slist, dir: TStrings;
    anzahl, sl: integer;
begin
  FindAllFilesFTP(IdFTP1, form1.dir.text, slist, dir, true, false);
  form1.ListBox1.Items:= slist;
  form1.ListBox2.Items:= dir;
end;
Programm startet zwar ich bockomme die Meldung das Das Verzeichniss nicht existirt.

und wenn ich hier:

Delphi-Quellcode:
procedure FindAllFilesFTP(FTPCon: TIdFTP; Directory: String; FileList,DirList: TStrings; WithSubDirs, ClearList: Boolean);
  procedure ScanDir(const Directory,SubDir: String; WithDir: Boolean);
  var
    i: Integer;
  begin
    FTPCon.ChangeDir(Directory + SubDir);
    FTPCon.List; //<<< Hier
    for i := 2 to FTPCon.DirectoryListing.Count-1 do
      if FTPCon.DirectoryListing.Items[i].ItemType = ditFile then
      begin
        if WithDir then FileList.Add(SubDir + FTPCon.DirectoryListing.Items[i].FileName)
nicht "(form1.listbox1.items)" eintrage leut der code mit der meldung
Code:
[Fehler] Unit1.pas(85): Nicht genügend wirkliche Parameter
gar nicht.

und ich finde idAllFTPListParsers irgentwie nicht.
Angehängte Dateien
Dateityp: rar baup_161.rar (340,7 KB, 5x aufgerufen)
Maximilian Ruta
  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 18:58 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