ftp.au3

  • Hallo hab da so meine Probleme mit ftp.au3 weil da keine hilfe mit dabei ist :) naja also ich versteh nicht ganz wie der befehl _FTPFileFindfirst() funktionieren soll.

    Also mann soll doch _FTPFileFindfirst($myftp,"", und hier die flags also eine 1 für asci rein oder?"*.*")

    Er gibt mir aber immer eine fehlermeldung aus
    kann einer vielleicht ein kleines Beispiel anzeigen ?


    Was mich noch interresieren würde, ist es möglich mittels einer dll im netzwerk bzw internet dateien hin und her zu schicken.Es gab im alten autoit forum mal ein Filetransfer wo die datei ausgelesen wurde und dann gesendet.Aber dies war ziemlich langsam.Weis jemand da was?

    • Offizieller Beitrag

    Ich denke jetzt mal es verhält sich ähnlich zum lokalen Arbeiten. Demnach musst du die Funktion einer Variablen übergeben.
    Ähnlich zu dem :

    [autoit]

    $search = FileFindFirstFile("*.htm")

    [/autoit][autoit][/autoit][autoit]

    ; Check if the search was successful
    If $search = -1 Then
    MsgBox(0, "Error", "Nichts nach den Suchkritierien gefunden")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    $quelle = $file
    $file = StringLower($file)
    $ziel = $file_neu
    FileCopy ($quelle, $ziel, 1)
    WEnd
    MsgBox(1, "Fertig", "Alle Dateien Kopiert!")
    ; Close the search handle
    FileClose($search)

    [/autoit]
  • hmm verstehe ich nicht ganz wie das eine funktioniert weis ich..aber wie meinst du das mit der variable übergeben.

  • und wie schreibe ich den befehl überhaupt ? weril ich eine fehler meldung bekomme kann mir bitte einer ein beispiel vorzeigen ?

  • Beispiel:

    Symantec Antivirusfiles downloaden


    Gruß
    Wolke

  • Am einfachsten mit dem ftp Befehl unter Dos und dem get Befehl.

    Das ganze sieht dann ungefähr so aus:

    ftp> open ftp.internet.de
    Verbindung mit ftp.internet.de wurde hergestellt.
    220 ftp.internet.de FTP server ready
    Benutzer (ftp.internet.de:(none)): USER
    331 Password required for USER.
    Kennwort:
    230 User USER logged in.
    ftp> get file.dat
    200 PORT command successful
    150 Opening ASCII mode data connection for file.dat (3859 bytes)
    226 Transfer complete.
    FTP: 64d Bytes empfangen in 0,03Sekunden 124,48KB/s

  • ... sowas zum Beispiel?

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ftp.au3>
    #include <file.au3>
    #include <date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Dim $sLogFile = "d:logdownl_"&_NowDate()&".log"
    Dim $localDir = "d:download"

    [/autoit] [autoit][/autoit] [autoit]

    If Not FileExists($localDir) Then
    DirCreate($localDir)
    EndIf
    If DriveSpaceFree ( $localDir ) < 5 Then
    _FileWriteLog($sLogFile,"Auf dem Ziellaufwerk ist nicht genug Speicher verfügbar!" & @CRLF &"Der Download wurde nicht durchgeführt!"
    Else
    _download()
    EndIf
    ;~ If @error = 0 Then
    ;~ FileDelete($sLogFile)
    ;~ EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _download()
    SetError(1)
    Local $search, $ftpOpen,$ftpConnect,$handle, $DllRect,$FileInfo,$delsuccess

    [/autoit] [autoit][/autoit] [autoit]

    $ftpOpen = _FTPOpen("FileZilla")
    If @error Then
    _FileWriteLog($sLogFile,"FTP-Handle wurde nicht erfolgreich erzeugt!")
    SetError(0)
    EndIf
    $ftpConnect = _FTPConnect($ftpOpen, "ftp.foobar.com", "user", "pw")
    If @error Then
    _FileWriteLog($sLogFile,"FTP-Connect war nicht erfolgreich.")
    SetError(0)
    EndIf
    _FtpSetCurrentDir($ftpConnect, "/pub/")
    If @error Then
    _FileWriteLog($sLogFile,"Das Verzeichnis /pub/ konnte nicht geöffnet werden.")
    SetError(0)
    EndIf
    $FileInfo = _FTPFileFindFirst($ftpConnect, "*.jpg", $handle, $DllRect)
    If $FileInfo[0] Then
    Do
    $success = _FTPGetFile($ftpConnect, $FileInfo[10],$localDir &""& $FileInfo[10])
    If $success = 0 Then
    _FileWriteLog($sLogFile,"Probleme bei Download von: "&$FileInfo[10])
    SetError(0)
    Else
    $delsuccess = _FTPDelFile($ftpConnect, $FileInfo[10])
    If $delsuccess = 0 Then
    _FileWriteLog($sLogFile,"Probleme beim Löschen von: "&$FileInfo[10])
    EndIf
    SetError(0)
    EndIf
    $FileInfo = _FtpFileFindNext($handle, $DllRect)
    Until Not $FileInfo[0]
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _FtpFileFindClose($handle, $DllRect)

    [/autoit] [autoit][/autoit] [autoit]

    _FTPClose($ftpOpen)
    If @error Then _FileWriteLog($sLogFile,"FTP-Verbindung konnte nicht getrennt werden.")
    _FileWriteLog($sLogFile,"Download abgeschlossen!")
    Return @error
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    ^^ ... der Parser verstümmelt das Skript :(

    2 Mal editiert, zuletzt von jonk (5. September 2006 um 17:51)

  • Hab ich auch schon gemerkt. Aber danke für das Skript. In dem Skript steht _FTPFileFindFirstFile. Da müsste es auch eine neue FTP-Datei geben, wo gibt es die.


    Wer kennt sich mit der FTP.au3 aus, weil ich in meinem neuen Projekt eine FTP-Funktion schreiben möchte.

    2 Mal editiert, zuletzt von DJMANU (6. September 2006 um 10:26)