meta data for this page
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

ftp-funktionen [2011/12/26 10:22] (aktuell)
Zeile 1: Zeile 1:
 +===== FTP-Funktionen =====
 +\\  Es gibt eine Reihe von FF-Scriptbefehlen zur Datenübertragung nach dem File Transfer Protocol (FTP):​\\ ​
  
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_CloseFTP.html|FF_CloseFTP]]\\ | Schließt die bestehende FTP-Verbindung\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_CreateFTPDir.html|FF_CreateFTPDir]]\\ | Erstellt ein Verzeichnis auf dem FTP-Server\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_DeleteFTPDir.html|FF_DeleteFTPDir]]\\ | Löscht ein Verzeichnis auf dem FTP-Server\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_DeleteFTPFile.html|FF_DeleteFTPFile]]\\ | Löscht eine Datei vom FTP-Server\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_ListFTPDirs.html|FF_ListFTPDirs]]\\ | Liefert Verzeichnisse im aktuellen Pfad mit CRLF getrennt\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_FTPCommand.html|FF_FTPCommand]]\\ | Führt einen [[http://​www.ucalgary.ca/​%7Ephysed/​mmi/​ftp-manual.html|FTP-Befehl]] aus\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​index.html?​HH_FF_FTPFileExists|FF_FTPFileExists]]\\ | Überprüft,​ ob die Datei auf dem FTP-Server existiert\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_GetCurrentFTPDir.html|FF_GetCurrentFTPDir]]\\ | Liefert das aktuelle Verzeichnis auf dem FTP-Server\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_ListFTPFiles.html|FF_ListFTPFiles]]\\ | Liefert Dateien im aktuellen Pfad mit CRLF getrennt\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_OpenFTP.html|FF_OpenFTP]]\\ | Öffnet eine FTP-Verbindung\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_ReadFTPFile.html|FF_ReadFTPFile]]\\ | Kopiert eine Datei vom FTP-Server auf den lokalen Rechner\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_RenameFTPFile.html|FF_RenameFTPFile]]\\ | Benennt eine Datei auf dem FTP-Server um\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_SaveFTP.html|FF_SaveFTP]]\\ | Lädt ein Bild auf einen Webserver\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_SetCurrentFTPDir.html|FF_SetCurrentFTPDir]]\\ | Setzt das Startverzeichnis für Pfad- und Datei-Auswahl auf dem FTP-Server.\\ |
 +| [[http://​www.fixfoto.info/​onlinehilfe/​HH_FF_WriteFTPFile.html|FF_WriteFTPFile]]\\ | Kopiert eine Datei auf den FTP-Server\\ |
 + Dazu einige fragmentarische Anmerkungen:​\\ \\ 
 +==== FF_OpenFTP ====
 + Das Öffnen der FTP-Verbindung ist Voraussetzung für die Anwendung fast aller weiteren FTP-Funktionen mit Ausnahme von **FF_SaveFTP**.\\ ​ Wenn das Ergebnis = false ist, ist die Verbindung fehl geschlagen. FF erzeugt dann eigene Fehlermeldungen wie z.B.:​\\ ​
 +
 +  - Die Serververbindung konnte nicht hergestellt werden.
 +  - Das Kennwort war unzulässig
 +\\  zu 1. - Ursache ist wahrscheinlich,​ dass keine Internetverbindung besteht oder auf den FTP-Server kann nicht zugegriffen werden.\\ ​ zu 2. - Der Benutzername oder das Passwort ist falsch.\\ \\ 
 +==== FF_CloseFTP ====
 + Wurde eine FTP-Verbindung erfolgreich geöffnet, sollte man sie nach Ausführung aller gewünschten FTP-Funktionen mit diesem Befehl wieder schließen.\\ \\ 
 +==== FF_SaveFTP ====
 + Diese Funktion erfordert __kein__ vorheriges Öffnen der FTP-Verbindung,​ da dieser Befehl mit Hilfe der notwendigen Zugangsdaten in den Parametern die Verbindung selbst herstellen kann.\\ \\ 
 +==== FF_WriteFTPFile ====
 + Eine auf dem Server bereits vorhandene Datei wird ohne Rückfrage überschrieben. Eine Sicherheitsabfrage kann mit der Funktion **FF_FTPFileExists** erstellt werden.\\ ​ Vor dem Kopieren muss man mit **FF_SetCurrentFTPDir** das gewünschte Ablageverzeichnis setzen.\\ ​ Wenn das Ergebnis = false ist, war die Übertragung fehlerhaft.\\ \\ 
 +==== FF_SetCurrentFTPDir ====
 + ​Erwartet wird der gesamte Pfad beginnend ab dem Server-Wurzelverzeichnis,​ also z.B.\\ ​
 +  FF_SetCurrentFTPDir "/​folder1/​folder2/​folder3"​
 +Es gibt für Verzeichnisse kein dem Befehl **FF_FTPFileExists** (überprüft,​ ob die Datei auf dem FTP-Server existiert) entsprechenden Befehl. Stattdessen kann\\ ​ geprüft werden, ob sich das betreffende Verzeichnis als Startverzeichnis für Pfad- und Datei-Auswahl setzen lässt:​\\ ​
 +  If FF_SetCurrentFTPDir ("/​folder1/​folder2/​folder3"​) = False Then Msgbox "​folder3 existiert nicht"
 +\\ **FF_CreateFTPDir**\\ ​ Erwartet wird der gesamte Pfad beginnend ab dem Server-Wurzelverzeichnis,​ um einen "​folder3"​ zu erzeugen also z.B.\\ ​
 +  FF_CreateFTPDir "/​folder1/​folder2/​folder3"​
 +Dabei darf die Verzeichnisangabe nicht auf einen Slash enden.\\ ​ Vor der Ausführung des Befehls, sollte man die Existenz des Verzeichnis mit **FF_SetCurrentFTPDir** prüfen, wie bei **FF_SetCurrentFTPDir** beschrieben.\\ \\  Zu beachten ist außerdem, dass das obige Beispiel die Existenz von folder1 und folder2 voraussetzt. Es können nicht mehrere Ebenen gleichzeitig angelegt werden. Man kann das Problem lösen, indem man rekursiv eine Ebene nach der anderen anlegt:​\\ ​
 +  remotepath = "​folder1/​folder2/​folder3" ​  '​weder am Anfang noch am Ende ein Slash
 +
 +  if FF_CreateFTPDir("/"​ & remotepath) = false then
 +     Array = split(remotepath,"/"​)
 +     for each element in Array
 +        path = path & "/"​ & element
 +        if FF_SetCurrentFTPDir(path) = false then
 +           if FF_CreateFTPDir(path) = false then
 +              msgbox "Der Serverpfad '"​ & remotepath & _
 +              "'​ konnte nicht angelegt werden",​vbExclamation,"​Abbruch"​
 +              FF_CloseFTP()
 +              exit sub
 +           end if
 +        end if
 +     next
 +  end if
 +   
 +Wenn anschließend auf dem neu angelegtem Serverpfad eine Datei abgelegt werden soll, muss dieser natürlich vorher mit **FF_SetCurrentFTPDir** gesetzt werden.\\ ​
 +  FF_SetCurrentFTPDir "/"​ & remotepath
 +===== Beispiel für FTP-Funktionen (vbs) =====
 + Es wird die Anwendung der folgenden FTP-Funktionen demonstriert:​\\ **FF_OpenFTP,​ FF_SetCurrentFTPDir,​ FF_CreateFTPDir,​ FF_FTPFileExists,​ FF_WriteFTPFile und FF_CloseFTP**\\ \\  Über einen Dialog kann man mit "​FTP-Einstellungen"​ eine Maske zum Eintragen der Zugangsdaten aufrufen.\\ ​ Mit Start der "​FTP-Übertragung"​ wird das Bild auf der FF-Arbeitsfläche auf dem Server im angegebenen Verzeichnis abgelegt. Existiert das Verzeichnis nicht, wird es auf Wunsch angelegt.\\ ​ Ist in den Zugangsdaten der Domainname angegeben, wird ein Link zum abgelegten Bild erzeugt und in die Zwischenablage übernommen.\\ \\ 
 +  Option Explicit
 +
 +  const FTP_RegSchluessel = "​FTP_Ablage" ​           '​Registryschlüssel
 +
 +  Dim fso                                           '​Objekte
 +  Set fso = CreateObject("​Scripting.FileSystemObject"​)
 +
 +  Dim file,​FTP_file
 +  Dim server,​remotepath,​domain,​user,​pwd,​passiveftp,​bool_pFTP
 +  '​---------------------------------------------------------------------
 +  if FF_GetImageWidth = 0 then
 +     ​msgbox "Es ist kein Bild geladen!",​vbCritical,"​Abbruch"​
 +  else
 +     call Dialog
 +  end if
 +
 +  Set fso = nothing
 +  '​---------------------------------------------------------------------
 +  Sub FTP_Uebertragung
 +  Dim Antwort,​path
 +
 +  '### Werteprüfung
 +  if len(server) = 0 or len(remotepath) = 0 or len(user) = 0 then
 +     ​msgbox "Es müssen mindestens Werte für" & vbNewLine & _
 +           "​den FTP-Server, den Serverpfad und den Benutzernamen"​ & vbNewLine & _
 +           "​eingegeben werden!",​vbExclamation,"​Hinweis"​
 +     call FTP_Dialog
 +     exit sub
 +  end if
 +
 +  '### Passwortprüfung
 +  if len(pwd) = 0 then
 +     pwd = trim(inputbox("​Passwort?","​Eingabeaufforderung"​))
 +     if len(pwd) = 0 then exit sub
 +  end if
 +
 +  '### FTP-Verbindung öffnen und Serverpfad prüfen
 +  if FF_OpenFTP(server,​user,​pwd,​bool_pFTP) = false then   '​Verbindung öffnen
 +     ​msgbox "Die Serververbindung konnte nicht geöffnet werden",​vbExclamation,"​Abbruch"​
 +     exit sub
 +  end if
 +
 +  if FF_SetCurrentFTPDir("/"​ & remotepath) = false then   '​Test ob Verz. vorhanden
 +     ​Antwort = msgbox("​Der Serverpfad '"​ & remotepath & "'"​ & vbNewLine & _
 +                  "​existiert nicht!"​ & vbNewLine & _
 +                  "Soll er angelegt werden?",​vbYesNo + vbQuestion,"​Abfrage"​)
 +     if Antwort = vbNo then
 +        FF_CloseFTP()
 +        exit sub
 +     else
 +        if FF_CreateFTPDir("/"​ & remotepath) = false then    'ggf. Verzeichnis anlegen
 +           Array = split(remotepath,"/"​)
 +           for each element in Array
 +              path = path & "/"​ & element
 +              if FF_SetCurrentFTPDir(path) = false then
 +                 if FF_CreateFTPDir(path) = false then
 +                    msgbox "Der Serverpfad '"​ & remotepath & _
 +                    "'​ konnte nicht angelegt werden",​vbExclamation,"​Abbruch"​
 +                    FF_CloseFTP()
 +                    exit sub
 +                 end if
 +              end if
 +           next
 +        end if
 +        if FF_SetCurrentFTPDir("/"​ & remotepath) = false then
 +           ​msgbox "Der Serverpfad '"​ & remotepath & _
 +                 "'​ konnte nicht angelegt werden",​vbExclamation,"​Abbruch"​
 +           ​FF_CloseFTP()
 +           exit sub
 +        end if
 +     end if
 +  end if
 +
 +  '### Testen ob Bild bereits auf dem Server existiert
 +  file = FF_GetImageName(-1) ​                        '​Bildpfad für aktives Bild ermitteln
 +  FTP_file = fso.GetFileName(file)
 +  if FF_FTPFileExists(FTP_file) then                 '​Sicherheitsabfrage wenn Bild vorhanden
 +     ​Antwort = msgbox("​Das Bild '"​ & fso.GetFileName(file) & "'​ ist bereits"​ & vbNewLine & _
 +                  "im Webpfad '"​ & remotepath & "'​ abgelegt."​ & vbNewLine & vbNewLine & _
 +                  "Soll es überschrieben werden?",​vbYesNo + vbQuestion,"​Abfrage"​)
 +      if Antwort = vbNo then
 +          FF_CloseFTP()
 +          exit sub
 +      end if
 +  end if
 +
 +  '### Bild auf dem Server ablegen und den Link in die Zwischenablage übernehmen
 +  if FF_WriteFTPFile(file,​FTP_file) then                       '​Bild auf dem Server ablegen
 +     if len(domain) > 0 then
 +        call FF_TextToClipboard(domain & "/"​ & remotepath & "/"​ & FTP_file) '​Zwischenablage
 +        msgbox "Das Bild wurde erfolgreich abgelegt!"​ & vbNewLine & _
 +              "Der Link" & vbNewLine & _
 +              domain & "/"​ & remotepath & "/"​ & FTP_file & vbNewLine & _
 +              "wurde in die Zwischenablage übernommen.",​vbInformation,"​Bildlink"​
 +     else
 +        msgbox "Das Bild wurde erfolgreich abgelegt!"​ & vbNewLine & _
 +              "Da die Domain nicht angegeben ist, kann" & vbNewLine & _
 +              "kein Link erzeugt werden.",​vbInformation,"​Hinweis"​
 +     end if
 +  else
 +     ​msgbox "Bei der Übertragung ist ein Fehler aufgetreten!",​vbExclamation,"​Abbruch"​
 +  end if
 +
 +  '### FTP-Verbindung schließen
 +  FF_CloseFTP()
 +
 +  End Sub
 +  '​---------------------------------------------------------------------
 +  Sub Dialog
 +
 +  '** Start Dialog FTP-Ablage **
 +  FF_AddDialog "​FTP-Ablage",​81,​45
 +  FF_AddControl "​FTP-Ablage","​FTP-Einstellungen","​BUTTON",​14,​6,​52,​11
 +  FF_AddControl "​FTP-Ablage","​FTP-Übertragung","​BUTTON",​14,​26,​52,​11
 +  '** End Dialog FTP-Ablage **
 +
 +  call FTP_RegistryLesen
 +
 +  do
 +     ​Select Case FF_ShowDialog ("​FTP-Ablage"​)
 +     Case "​FTP-Einstellungen"​
 +        call FTP_Dialog
 +     Case "​FTP-Übertragung"​
 +        call FTP_Uebertragung
 +        exit do
 +     Case "​CANCEL"​
 +        exit do
 +     Case Else
 +     End Select
 +  loop
 +
 +  FF_CloseDialog ("​FTP-Ablage"​)
 +
 +  End Sub
 +  '​---------------------------------------------------------------------
 +  Sub FTP_Dialog
 +
 +  '** Start Dialog FTP-Zugang **
 +  FF_AddDialog "​FTP-Zugang",​160,​82
 +  FF_AddControl "​FTP-Zugang","​FTP-Server","​STATIC",​5,​5,​40,​10
 +  FF_AddControl "​FTP-Zugang","​server","​SLEDIT",​50,​5,​105,​10
 +  FF_AddControl "​FTP-Zugang","​Serverpfad","​STATIC",​5,​15,​40,​10
 +  FF_AddControl "​FTP-Zugang","​remotepath","​SLEDIT",​50,​15,​105,​10
 +  FF_AddControl "​FTP-Zugang","​Domainname","​STATIC",​5,​25,​40,​10
 +  FF_AddControl "​FTP-Zugang","​domain","​SLEDIT",​50,​25,​105,​10
 +  FF_AddControl "​FTP-Zugang","​Benutzername","​STATIC",​5,​35,​40,​10
 +  FF_AddControl "​FTP-Zugang","​user","​SLEDIT",​50,​35,​105,​10
 +  FF_AddControl "​FTP-Zugang","​Passwort","​STATIC",​5,​45,​40,​10
 +  FF_AddControl "​FTP-Zugang","​pwd","​SLEDIT",​50,​45,​105,​10
 +  FF_SetControlStyle "​FTP-Zugang","​pwd",​32
 +  FF_AddControl "​FTP-Zugang","​Passiv FTP","​STATIC",​15,​68,​28,​10
 +  FF_AddControl "​FTP-Zugang","​passiveftp","​BOOL",​4,​69,​8,​8
 +  FF_AddControl "​FTP-Zugang","​Ist kein Passwort eingegeben, wird es jeweils abgefragt.","​STATIC",​5,​56,​150,​8
 +  FF_AddControl "​FTP-Zugang","?","​BUTTON",​84,​68,​11,​11
 +  FF_AddControl "​FTP-Zugang","​Übernehmen","​BUTTON",​112,​68,​38,​11
 +  '** End Dialog FTP-Zugang **
 +
 +  '### Werte in Dialog eintragen
 +  FF_SetControl "​FTP-Zugang","​server",​server
 +  FF_SetControl "​FTP-Zugang","​remotepath",​remotepath
 +  FF_SetControl "​FTP-Zugang","​domain",​domain
 +  FF_SetControl "​FTP-Zugang","​user",​user
 +  FF_SetControl "​FTP-Zugang","​pwd",​pwd
 +  FF_SetControl "​FTP-Zugang","​passiveftp",​passiveftp
 +
 +  do
 +     ​Select Case FF_ShowDialog ("​FTP-Zugang"​)
 +     Case "?"​
 +        Msgbox ​   "- FTP-Server (unbedingt notwendig)"​ & vbNewLine & _
 +              "​FTP-Adresse des Webservers (z.B. meineseite.de)"​ & vbNewLine & vbNewLine & _
 +              "- Serverpfad (unbedingt notwendig)"​ & vbNewLine & _
 +              "​Verzeichnis in das die Bilder abgelegt werden sollen (z.B. bilder)"​ & vbNewLine & _
 +              "​Existiert das Verzeichnis nicht, wird es auf Wunsch angelegt."​ & vbNewLine & vbNewLine & _
 +              "- Domainname"​ & vbNewLine & _
 +              "URL des Webspaces (z.B. http://​www.meineseite.de)"​ & vbNewLine & _
 +              "Er wird nur zur Erzeugung eines Link auf das abgelegte Bild benötigt."&​ vbNewLine & vbNewLine & _
 +              "- Benutzername (unbedingt notwendig)"​ & vbNewLine & _
 +              "​Benutzername zum Einloggen auf dem FTP-Server"​ & vbNewLine & vbNewline & _
 +              "- Passwort"​ & vbNewLine & _
 +              "​Passwort zum Einloggen auf dem FTP-Server."​ & vbNewLine & _
 +              "Wird kein Passwort eingegeben, wird es jeweils abgefragt."​ & vbNewLine & vbNewLine & _
 +              "- Passiv-FTP"​ & vbNewLine & _
 +              "Wird eine Firewall benutzt, ist dieses Kästchen anzuhaken, falls" & vbNewLine & _
 +              "die FTP-Verbindung nicht zustande kommt.",​vbInformation,"​Erläuterung zum FTP-Zugang"​
 +     Case "​Übernehmen"​
 +        call FTP_RegistrySchreiben
 +        exit do
 +     Case "​CANCEL"​
 +        exit do
 +     Case Else
 +     End Select
 +  loop
 +
 +  FF_CloseDialog ("​FTP-Zugang"​)
 +
 +  End Sub
 +  '​-------------------------------------------------------------------
 +  Sub FTP_RegistryLesen
 +  '​Schlüsselname = HKEY_CURRENT_USER\Software\Joachim Koopmann Software\FixFoto\Script\ & FTP_RegSchluessel
 +
 +  '### Werte aus Registry auslesen
 +  server = FF_GetProfile (FTP_RegSchluessel,"​server"​)
 +  remotepath = FF_GetProfile (FTP_RegSchluessel,"​remotepath"​)
 +  domain = FF_GetProfile (FTP_RegSchluessel,"​domain"​)
 +  user = FF_GetProfile (FTP_RegSchluessel,"​user"​)
 +  pwd = FF_GetProfile (FTP_RegSchluessel,"​pwd"​)
 +  passiveftp = FF_GetProfile (FTP_RegSchluessel,"​passiveftp"​)
 +  if passiveftp = ""​ then passiveftp = 0
 +  if passiveftp = 0 then bool_pFTP = false else bool_pFTP = true
 +
 +  End Sub
 +  '​---------------------------------------------------------------------
 +  Sub FTP_RegistrySchreiben
 +  '​Schlüsselname = HKEY_CURRENT_USER\Software\Joachim Koopmann Software\FixFoto\Script\ & FTP_RegSchluessel
 +
 +  '### Werte aus Dialog auslesen
 +  server = trim(FF_GetControl("​FTP-Zugang","​server"​))
 +
 +  remotepath = trim(FF_GetControl("​FTP-Zugang","​remotepath"​))
 +  if remotepath = "/"​ then remotepath = ""​
 +  do
 +     if left(remotepath,​1) = "/"​ and len(remotepath) > 1 then
 +        remotepath = mid(remotepath,​2)
 +     else
 +        exit do
 +     end if
 +  loop
 +  do
 +     if right(remotepath,​1) = "/"​ and len(remotepath) > 1 then
 +        remotepath = left(remotepath,​len(remotepath)-1)
 +     else
 +        exit do
 +     end if
 +  loop
 +
 +  domain = trim(FF_GetControl("​FTP-Zugang","​domain"​))
 +  user = trim(FF_GetControl("​FTP-Zugang","​user"​))
 +  pwd = trim(FF_GetControl("​FTP-Zugang","​pwd"​))
 +  passiveftp = trim(FF_GetControl("​FTP-Zugang","​passiveftp"​))
 +  if passiveftp = 0 then bool_pFTP = false else bool_pFTP = true
 +
 +  '### Werte in Registry schreiben
 +  FF_WriteProfile FTP_RegSchluessel,"​server",​server
 +  FF_WriteProfile FTP_RegSchluessel,"​remotepath",​remotepath
 +  FF_WriteProfile FTP_RegSchluessel,"​domain",​domain
 +  FF_WriteProfile FTP_RegSchluessel,"​user",​user
 +  FF_WriteProfile FTP_RegSchluessel,"​pwd",​pwd
 +  FF_WriteProfile FTP_RegSchluessel,"​passiveftp",​passiveftp
 +
 +  End Sub
 +  '​---------------------------------------------------------------------
 +Überträgt man den Link in die Adresszeile eines Browsers, kann man direkt überprüfen,​ ob das Bild ordnungsgemäß abgelegt wurde.\\ \\ 
 +===== Vorhandene FTP-Daten auslesen =====
 +\\  Statt die FTP-Daten vom User in eine Maske eintragen zu lassen, kann man auch die ggf. in den Optionen des Speicherdialogs von FixFoto eingegebenen Daten auslesen.\\ \\ 
 +  '### FixFoto-FTP-Daten aus der Registry auslesen
 +  const FF_FTP_Reg = "​HKCU\Software\Joachim Koopmann Software\FixFoto\Options\"​
 +  Dim server,​remotepath,​domain,​user,​pwd,​passiveftp
 +  Dim WshShell
 +  Set WshShell = CreateObject("​WScript.Shell"​)
 +
 +  On Error Resume Next
 +
 +  server = WshShell.RegRead (FF_FTP_Reg & "​FTPServer"​)
 +  remotepath = WshShell.RegRead (FF_FTP_Reg & "​FTPPath"​)
 +  domain = WshShell.RegRead (FF_FTP_Reg & "​FTPDPath"​)
 +  user = WshShell.RegRead (FF_FTP_Reg & "​FTPUser"​)
 +  pwd = WshShell.RegRead (FF_FTP_Reg & "​FTPPwd"​)
 +  passiveftp = WshShell.RegRead (FF_FTP_Reg & "​PassiveFTP"​)
 +
 +  On Error GoTo 0
 +   
 +Während des Auslesens müssen Fehlermeldungen mit On Error Resume Next ausgbelendet werden, weil nicht vorhandene Daten einen Fehler erzeugen.\\ \\ \\ Wenn anschließend auf dem neu angelegtem Serverpfad eine Datei abgelegt werden soll, muss dieser natürlich vorher mit FF_SetCurrentFTPDir gesetzt werden.