auf ftp connecten und neue ordner entdecken

hallo, habe ein programm geschrieben, welches den zweck hat mit input daten, die der benutzer eingibt auf einen ftp server zu verbinden, und diesen dann auf neu erstellte ordner zu überwachen,das ganze habe ich mir jetzt so gedacht,dass wenn man auf den ftp server connected die ftp.list in ein listfeld(listbox) geschrieben, und alle 5 minuten wird dann eine aktuelle ordnerliste auf eine zweite listbox geladen, und die beiden werden dann verglichen, also zeile für zeile, logisch dass wenn dann bei einer der neuen liste ein ordner hinzugekommen ist, diese liste nicht mehr mit dem muster(listbox2) übereinstimmt...
jedenfalls habe ich ein bisschen gebastelt, und dass ist dabei herausgekommen:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP, ExtCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
ListBox1: TListBox;
Button2: TButton;
Button3: TButton;
Edit4: TEdit;
ftp: TIdFTP;
Memo1: TMemo;
ListBox2: TListBox;
Timer1: TTimer;
Timer2: TTimer;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled := false;
timer2.Enabled := false;
memo1.Lines.Text := '';
memo1.Lines.Add('logbuch gestartet');
memo1.lines.add('fertig');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Add('Verbinde mit Server');
timer1.Interval := 2500;
timer1.Enabled := true;

ftp.Host := edit1.Text;
ftp.Username := edit2.Text;
ftp.Password := edit3.Text;
ftp.Port := strtoint(edit4.text);
ftp.Connect;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
timer1.Enabled := false;
if ftp.Connected = true then begin
memo1.Lines.Add('erfolgreich verbunden mit ' + edit1.Text);
memo1.Lines.Add('empfange ordnerliste');
ftp.List(listbox1.Items);
memo1.Lines.add('ordnerliste empfangen');
end
else begin
memo1.Lines.Add('ein fehler trat während des verbindens auf, bitte überprüfen sie ihre eingaben');
end
end;

procedure TForm1.Button2Click(Sender: TObject);
var i,j : integer;
begin
ftp.Disconnect;
ftp.Connect();
ftp.List(listbox1.Items);
memo1.Lines.Add('starte manuelle ordnerabfrage');
For i:=0 to ListBox2.Count - 1 do begin
j := ListBox1.Items.IndexOf(ListBox2.Items);
If not(j <> -1) then begin
memo1.Lines.Add('ACHTUNG: neuer ordner gefunden, bitte manuell überprüfen!');
end
else begin
memo1.Lines.Add('keine neuen ordner gefunden');
end

end
end;

procedure TForm1.Button3Click(Sender: TObject);
var i, j: integer;
begin
ftp.Disconnect;
ftp.Connect();
ftp.List(listbox1.Items);
memo1.lines.Add('starte ordnerabfrage');
timer2.Interval := 300000;
timer2.Enabled := true;
memo1.Lines.Add('interval zähler gestartet');
For i:=0 to ListBox2.Count - 1 do begin
j := ListBox1.Items.IndexOf(ListBox2.Items);
If not(j <> -1) then begin
memo1.Lines.Add('ACHTUNG: neuer ordner gefunden, bitte manuell überprüfen!');
end
else begin
memo1.Lines.Add('keine neuen ordner gefunden');
end
end
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var i,j : integer;
begin
memo1.Lines.Add('starte automatische ordnerabfrage');
For i:=0 to ListBox2.Count - 1 do begin
j := ListBox1.Items.IndexOf(ListBox2.Items);
If not(j <> -1) then begin
memo1.Lines.Add('ACHTUNG: neuer ordner gefunden, bitte manuell überprüfen!');
end
else begin
memo1.Lines.Add('keine neuen ordner gefunden');
end;
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
memo1.Lines.Add('lade muster');
ftp.List(listbox2.Items);
memo1.Lines.Add('muster erfolgreich geladen');
end;

end.

würde das so funktionieren?
 
Zurück
Oben