VB-Tec.de Visual Basic - Technik, FAQ, Tricks, BeispieleHome / System / Internet / FTP Dateien via FTP und Shell übertragen |
| Historie | |
| 31.07.2001 | FTP-Verbindung wird im Skript geschlossen und der Client beendet (Hinweis von Jürgen Caspar) |
| 11.01.2001 | Parameter der FTP-Anweisungen in Anführungszeichen gesetzt, daher Fehler-Toleranter |
| 17.11.2000 | Als Prozedur umgeschrieben; ermöglicht nun das Kopieren von mehreren Dateien in einem Rutsch |
| 14.10.2000 | Schlankerer Code durch Nutzung der Routinen TempDir und ShellX |
| ??.??.19?? | Erste Version (nur ein Beispiel) |
Public Sub FTPCopy( _
Hostname As String, DestDir As String, _
Username As String, Password As String, _
ParamArray SourceFile() _
)
Dim FileNr As Long
Dim TempFile As String
Dim Files As Variant
Dim i As Long
'Initialisierung:
FileNr = Freefile
TempFile = TempDir() & "ftp.tmp"
If IsArray(SourceFile(0)) Then
Files = SourceFile(0)
Else
Files = SourceFile
End If
'Ein FTP-Skript erzeugen:
Open TempFile for Output As #FileNr
Print #FileNr, Username
Print #FileNr, Password
Print #FileNr, "mkdir """ & DestDir & """"
Print #FileNr, "cd """ & DestDir & """"
Print #FileNr, "binary"
For i = LBound(Files) To UBound(Files)
Print #FileNr, "put """ & Files(i) & """"
Next i
Print #FileNr, "close"
Print #FileNr, "quit"
Close #FileNr
'FTP via Shell ausführen:
ShellX "FTP -s:" & TempFile & " " & Hostname, vbHide
'Aufräumen:
Kill TempFile
End Sub
Sollen z.B. vier Dateien auf den Server mit der IP "10.195.129.2" (alternativ kann natürlich auch die URL angegeben werden) ins Server-Verzeichnis "backup" unter dem Account "schwider" mit dem Passwort "**pwd**" kopiert werden, so kann dies mit folgendem Code geschehen:
FTPCopy "10.195.129.2", "backup", "schwider", "**pwd**", _
"c:\autoexec.bat", _
"c:\windows\system\win.ini", _
"\\SV0815\data\test.txt", _
"d:\temp\html\index.htm"
© Jost Schwider, 30.04.2000-31.07.2001 - http://vb-tec.de/ftpshell.htm