Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prüfen ob eine Datei auf dem FTP exestiert. (https://www.delphipraxis.net/73749-pruefen-ob-eine-datei-auf-dem-ftp-exestiert.html)

toredo 23. Jul 2006 14:45


Prüfen ob eine Datei auf dem FTP exestiert.
 
hallo,

ich habe noch eine frage zu den ftp-sachen.
weiss jemand wie ich prüfen kann ob eine datei auf dem ftp exestiert?
das ist alles was ich noch brauche, dann sollte das thema delphi+ftp für mich mal ne weile weg sein.
thx im vorraus für eure antworten :)


mfG toredo

Zacherl 23. Jul 2006 14:51

Re: Prüfen ob eine Datei auf dem FTP exestiert.
 
Hi,
du könntest einen IdFTP nehmen und mit der Methode FileExists das Vorhandensein einer Datei prüfen.

Florian

toredo 23. Jul 2006 15:13

Re: Prüfen ob eine Datei auf dem FTP exestiert.
 
hallo,

gibt es irgendwo ein tut oder so was zu IdFTP, habe halt noch nei damit gearbeitet...




mfG toredo

-edit-

weiss vielleicht jemand wo es ein beispiel oder so gibt in google und so hab ich nichts brauchbares gefunden...



mfG toredo

toredo 24. Jul 2006 09:35

Re: Prüfen ob eine Datei auf dem FTP exestiert.
 
:gruebel: kann mir niemand helfen, weil am mittag sollte ich dann doch wiedr versuchen am programm weiter zu arbeiten.



mfG toredo :zwinker:

TurboMartin 24. Jul 2006 09:37

Re: Prüfen ob eine Datei auf dem FTP exestiert.
 
Schau dir doch mal an, was die Codevervollständigung alles anzeigt.

Klaus01 24. Jul 2006 09:51

Re: Prüfen ob eine Datei auf dem FTP exestiert.
 
Oder Du schaust Dir mal das Tut an :-> http://www.dsdt.info/tutorials/indy/?page=4

Grüße
Klaus

arbu man 24. Jul 2006 09:53

Re: Prüfen ob eine Datei auf dem FTP exestiert.
 
oder schau dir die indy demos an...

toredo 24. Jul 2006 09:56

Re: Prüfen ob eine Datei auf dem FTP exestiert.
 
dan für die shcnellen antworten, ich werds gleich anschauen.



mfG toredo

ascotlx 24. Jul 2006 10:17

Re: Prüfen ob eine Datei auf dem FTP exestiert.
 
Moin Toredo,

hier ein CodeSchnipsel ... probier mal, ob Du den gebrauchen kannst:

Die Angaben für den FTP Login musst Du allerdings noch anpassen.
ACHTUNG !!Der CodeSchnipsel stammt aus einem Konsolenprogramm ...!!

Delphi-Quellcode:

...
uses
  SysUtils, Windows, IdFTP, IdFTPCommon, IdException, Classes, IdRFCReply, ShellApi;
...

const
...
  sk_EDir = '/etc';                      // Systemkonfiguration
...

procedure cronproc;
var
  IdFTP1: TIdFTP;
  sk_Files2: TStringList;

begin
  IdFTP1:=TIdFTP.Create(nil);
  IdFTP1.Host := '<HOST>';
  IdFTP1.Username := '<USER>';
  IdFTP1.Password := '<PASSWORD>';
  sk_Files2 := TStringList.Create;

  try //FTP: ist der Host erreichbar ??
    IdFTP1.Connect;
  except on e:EIdSocketError do
    begin
      writeLn('');
      SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED + FOREGROUND_INTENSITY);
      Write(E.Message);
      Write('Bitte überprüfen Sie, ob der Server erreichbar ist (cronproc).');
      WriteLn(' ');
      SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
      Write('Bitte drücken Sie die <ENTER>-Taste um das Fenster zu schliessen.');
      ReadLn;
      Exit;
    end;
  end;

  if IdFTP1.Connected then
    try // exception wenn nicht in das Verzeichnis gewechselt werden kann.
      IdFTP1.ChangeDir(sk_EDir);

      try // exception wenn File nicht vorhanden ist.
        IdFTP1.List(sk_Files2, 'SuSE-release', false);
        //Linux
        if sk_Files2.Count >0
          then begin
          //writeln(sk_Files2.Strings[0]);
            if Pos('SuSE-release',sk_Files2.Strings[0]) > 0 then
              [b]<HIER KÖNNTE WAS WEITER VERARBEITET WERDEN>[/b];
          end;
      except on e:EIdProtocolReplyError do
    begin
      writeLn('');
      SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED + FOREGROUND_INTENSITY);
      Write(E.Message);
      Write('Bitte überprüfen Sie, ob die Datei vorhanden ist ...(cronproc).');
      WriteLn(' ');
      SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
      Write('Bitte drücken Sie die <ENTER>-Taste um das Fenster zu schliessen.');
      ReadLn;
      Exit;
    end;

      end;

    finally
    IdFTP1.Disconnect;
  end; // Ende try
  sk_Files2.Free;
  IdFTP1.Free;
end;
Ich habe den Code ein wenig geändert, da Du meine einzelnen Abfragen wharscheinlich nicht gebrauchen kannst.
Vielleicht hilft Dir das Beispiel weiter ...

cu
ascotlx


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr.

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