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