Entwickler-Ecke

Internet / Netzwerk - Daten mit Server überprüfen, falls neuer/größer, downloaden


Xearox - Do 07.01.10 19:47
Titel: Daten mit Server überprüfen, falls neuer/größer, downloaden
Hallo

ich bins mal wieder.
Und zwar, hab ich jetzt schon einige stunden damit verbracht, irgendwie eine Befehlsliste von Indy idFTP zu finden, jedoch nichts gefunden... Gibt es irgendwo eine Liste mit Befehlen, welche man bei IdFTP nutzen kann?

und meine zweite frage nun, ich möchte gerne mehr klick auf einen Button, mit dem Server verbinden, und eine Bestimmte datei downloaden. Diese sollte aber nur downgeloadet werden, wenn sie neuer/Größer ist...

Gibt es dazu eine möglichkeit?

und wenn ja, wie sieht der Befehl dazu aus. Möchte nur den Befehl, den rest versuche ich selber...


Gruß Chris

Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.


Xentar - Fr 08.01.10 12:08

http://forum.delphi-treff.de/showthread.php?t=28152


Xearox - Fr 08.01.10 16:33

ja wow...

sorry, dort habe ich das gleiche gefragt, jedoch war das keine hilfe...


Dude566 - Fr 08.01.10 16:36

Langsam stinkts mir, in deinem anderen Thread habe ich dir doch schon einen Link zu idFTP gepostet.
Darin stehen alle wichtigen Methoden und Attribute dieser Komponente.

Hier nochmal: http://www.delphi-treff.de/tutorials/netzwerk-und-internet/indy/page/4/


Andreas L. - Fr 08.01.10 17:20

Wenn es nur ums herunterladen geht wäre die IdHTTP-Komponente aber sinnvoller (vor allem weil man dort keinen Benutzernamen und Passwort hinterlegen muss). IdHTTP stellt die Methode .Head bereit mit der man den HTTP-Header erhält ohne die eigentliche Datei runterzuladen. Im Header steht in der Regel der Zeitpunkt der letzten Änderung und auch die Größe der Datei.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  http: TIdHTTP;
begin
  http := TIdHTTP.Create(nil);
  try
    http.Head('http://seite.de/datei.zip'); 
    for i := 0 to http.Response.RawHeaders.Count -1 do
    begin
      //benötigten Header suchen und auswerten
    end;
  finally
    http.Free;
  end;
end;


Xentar - Fr 08.01.10 17:29

user profile iconAndreas L. hat folgendes geschrieben Zum zitierten Posting springen:
Wenn es nur ums herunterladen geht wäre die IdHTTP-Komponente aber sinnvoller (vor allem weil man dort keinen Benutzernamen und Passwort hinterlegen muss). IdHTTP stellt die Methode .Head bereit mit der man den HTTP-Header erhält ohne die eigentliche Datei runterzuladen. Im Header steht in der Regel der Zeitpunkt der letzten Änderung und auch die Größe der Datei.

HTTP <> FTP
Und da er explizit nach einer FTP Komponente gefragt hat, gehen wir mal davon aus, dass er nur einen solchen Server hat.
Da kann man mit IdHTTP nicht viel reißen..


Andreas L. - Fr 08.01.10 18:43

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconAndreas L. hat folgendes geschrieben Zum zitierten Posting springen:
Wenn es nur ums herunterladen geht wäre die IdHTTP-Komponente aber sinnvoller (vor allem weil man dort keinen Benutzernamen und Passwort hinterlegen muss). IdHTTP stellt die Methode .Head bereit mit der man den HTTP-Header erhält ohne die eigentliche Datei runterzuladen. Im Header steht in der Regel der Zeitpunkt der letzten Änderung und auch die Größe der Datei.

HTTP <> FTP
Und da er explizit nach einer FTP Komponente gefragt hat, gehen wir mal davon aus, dass er nur einen solchen Server hat.
Da kann man mit IdHTTP nicht viel reißen..


Schon klar das HTTP <> FTP ist. Hätte ja sein können das dies eine Option für ihn wäre...


Xearox - So 10.01.10 23:29

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Langsam stinkts mir, in deinem anderen Thread habe ich dir doch schon einen Link zu idFTP gepostet.
Darin stehen alle wichtigen Methoden und Attribute dieser Komponente.

Hier nochmal: http://www.delphi-treff.de/tutorials/netzwerk-und-internet/indy/page/4/



Das habe ich ja schon, das downloaden, es geht aber darum:

Wenn man den Update Button anklickt, soll überprüft werden, ob die Datei auf dem FTP server(ja, hab nur FTP), neuer ist oder nicht...
Wenn nicht, soll eine meldung like Showmessage, kommen, das kein Update vorhanden ist, das war meine Frage gewesen...


Xearox - Di 12.01.10 20:17

gibt es überhaupt dafür ein befehl, eine datei per ftp befehl auf größer nzw änderungsdatum zu überprüfen?


Dude566 - Di 12.01.10 21:02

Nicht das ich wüsste, wenn dann müsstest du im selben Verzeichnis auf dem Server eine Datei hinterlegen in der die aktuelle Update Version steht.

Diese vergleichst du dann und lädst ggf. die andere Datei herunter.


Xentar - Di 12.01.10 21:10

Könntest auch mit IdFTP.List die Dateiliste herunterladen, und die Größe / das Datum selber rausparsen.