Entwickler-Ecke

Internet / Netzwerk - Problem mit Fileexists


ghubinger - Di 22.07.08 22:11
Titel: Problem mit Fileexists
Hallo erst mal,

da ich nicht der Welt größter Entwickler bin, jedoch ein Problem habe, wende ich mich hiermit vertrauensvoll an EUCH.

Mein Problem ist es, das ich überprüfen möchte ob eine Datei auf meinem Webserver vorhanden ist. Wenn ja möchte ich dies Downloaden.
Mit if fileexists('Http://www.blablabla.at') then funktioniert es nicht. Anscheinend kann ich nur lokale Dateien mit Fileexists überprüfen.

Ich hoffe es kann mir jemand helfen wie ich mein Problem lösen kann.

Danke schon mal im Vorraus.
LG GH


Narses - Di 22.07.08 22:16

Moin und :welcome: im Forum!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Vorschlag: "Prüfen, ob Datei auf Webserver existiert" :idea:

cu
Narses


Yogu - Di 22.07.08 22:19

Hallo und :welcome: im Delphi-Forum, user profile iconghubinger!

Du hast recht, FileExists kann keine Daten aus dem Internet abfragen. Dazu würde ich dir die [serach="Indy IN DF, DL"]Indys[/search] empfehlen. Wenn du das erfolgreich runtergeladen und installiert hast, kannst du über die FTP-Komponente eine Verbindung zu deinem Server herstellen und anschließend den Inhalt der Ordner herunterladen.

Grüße,
Yogu


pigfacejoe - Mi 23.07.08 00:01

Mit den Indys könntest du auch mit der IdHTTP Komponente arbeiten. Diese kann dateien mit der Methode GET laden. wenn du jetzt z.B wissen willst, ob die Datei http://deinserver/datei.html existiert könntest du das so machen:

Delphi-Quelltext
1:
2:
3:
4:
try
idhttp1.get('http://deinserver/datei.html');
except showmessage('Datei nicht vorhanden!');
end;

Downloaden geht mit der gleichen Komponente und zwar so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure downloaden;
var Ziel, Datei:string;
lStream: TFileStream;

begin
Datei:=URL zur Datei  ;
Ziel:=DEIN ZIEL (also z.B C:\);

 lStream:=TFileStream.Create(Ziel, fmCreate or fmShareDenyNone);

 try
   idHTTP1.Get(Datei, lStream);


 finally
   lStream.Free;
end;


Viel Glück ;-)


Calculon - Mi 23.07.08 01:10

Es gibt im Netz diverse [url=http://www.delphipraxis.net/post493083.html#493083]URLexists[/url]-Funktionen. Brauchst für diese Spezielle aber ebenfalls die Indies.

HTH Gruß
--


matze - Mi 23.07.08 12:27

Ich würde das nicht mit der INDY HTTP GET Methode machen. Damit bekommt man zwar schon raus, ob es die Datei gibt, aber sie wird auch gleichzeitig heruntergeladen. Und das ist bei Großen Dateien nicht so cool.
Besser ist idhttp.head('adresse');


huuuuuh - Mi 23.07.08 13:08

er hat ja geschrieben er will sie herunterladen. da wärs dann egal...