FTPDownload() – Downloaden eines Files von einem FTP-Server
Die Funktion lädt eine oder mehrere Dateien von einem FTP-Server herunter.
Die Funktion arbeitet case sensitive (trifft auch auf die Endungen der Dateien zu), außerdem wird die Datei auch im Fehlerfall lokal erstellt (0 kB).
|
Parameter |
Beschreibung |
|---|---|
|
aCaption:C |
Titel |
|
aRemoteHost:C |
IP oder Domain des Hosts |
|
aRemotePort:N |
Port des Hosts |
|
aUserName:C |
User-Name |
|
aPassword:C |
Password |
|
aPassiveMode:L |
Passiver Übertragungsmodus |
|
aFileList:U |
Liste der Dateien |
|
aHostPath:C |
RemotePath; default = Leerstring |
|
aLogFileName:C |
Logfile schreiben; default = Leerstring |
|
aIncludeHostDir:L |
Directorylist in TraceFile; default = false |
|
aTransferBinary:L |
setzt den Transfertyp auf BINARY/ACSII, default = true = BINARY |
|
lShowMsg:L |
Exceptions statt Messages; default = false |
|
aQuietMode:L |
Kein Dialog anzeigen. Wenn in beas benutzt wird, ist aQuietMode IMMER true |
Rückgabewert
Numerisch
-
0 für korrekte Ausführung, ansonsten Fehler-Code
-
1 für Verbindungsfehler
-
2 für Fehler beim Verzeichniswechsel
-
3 u.a Datei nicht gefunden
-
5 für Vorgang abgebrochen
Achtung: FTP-Fehler können auch eine Exception auslösen!
Beispiel
| aResult, i, j, aHostFiles, aHostPath, aSourcePath,
aDestPath, aDestFile, aFileExt, aLogFile, aGetFiles, aLogTxt |
function ErrChk(aErrNo)
if aErrNo <> 0 then
ShowMessage('Error ' + Str(aErrNo)),
Abort(),
endif,
end,
aLogFile := 'C:\SICHERUNG\FTP_Test\MyFtpLog.txt',
aDestPath := 'C:\SICHERUNG\FTP_Test\Download\',
aSourcePath := 'C:\SICHERUNG\FTP_Test\Upload\',
aHostPath := 'Test',
if File(aLogFile) then
DeleteFile(aLogFile),
endif,
startseq,
WriteLn(aGetFiles),
ErrChk(aResult := FTPDownload('Hole Dateien vom FTP-Server', // Überschrift
'192.168.10.152', // RemoteHost
21, // RemotePort
'beuser', // UserName
'be32', // Password
.t., // PassivMode
{'C:\SICHERUNG\FTP_Test\BigDataDownload.pdf',
'C:\SICHERUNG\FTP_Test\DataDownload.pdf',
'C:\SICHERUNG\FTP_Test\TextDownload.txt'}, // ResultDir
aHostPath, // HostPath
aLogFile)), // LogFileName
onerror,
aResult := -1,
stopseq,
if !Empty(aResult) and LoadArray(aLogTxt, aLogFile) then
WriteLn(aLogTxt)
endif,
aResult