Verzeichnis downloaden

  • hallo...ich hab mal ne Frage

    mit InetGet kann man ja eine Datei herunterladen zb "www.url.de/ordner/datei.txt"

    wenn nun allerdings im ordner mehrere Dateien sind und ich alle Downloaden möchte wie mache ich das dann?

    Inetget("www.url.de/ordner/", @desktopdir&"\") geht irgendwie nicht

    Einmal editiert, zuletzt von Reaker (20. November 2009 um 19:31)

  • Vieleicht in einer Schleife einen Array der Dateien im Ordner bekommen.
    Dann den Ordnernamen (im Web) auslesen und in eine Variabel schreiben.
    Über DirCreate den Ordner erstellen und dann in einer Schleife (For..Next) die Dateien downloaden.

  • einfach mal die Suche-Funktion benutzen:http://www.autoit.de/index.php?page=Thread&postID=48404#

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • ja aber dort ist die Rede von einem FTP server, was mache ich aber bei einem HTTP Server, bei dem ich kein Passwort für die Verbindung habe?

  • Kannst du dir den Inhalt des Verzeichnisses im Browser anzeigen lassen? so wie hier:
    http://isaw.is.funpic.de

    Wenn ja, probier mal diesen hier:


    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <Array.au3>

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

    If _RemoteDirGet("http://isaw.is.funpic.de/", "C:\TestDownload\") = 0 Then
    MsgBox(0, "", "Fehler " & @error & " ist aufgetreten")
    Else
    MsgBox(0, "", "alles okey")
    EndIf

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

    ;===============================================================================
    ;
    ; Function Name: _RemoteDirGet($rdgUrl [,$rdgTarget=@ScriptDir [,$rdgRek=1 [,$rdgCD=0]]])
    ; Description: Downloads a HTTP-Folder to your Harddrive
    ; Parameter(s): $rdgUrl - The HTTP-Folder to download
    ; $rdgTarget - The target directory on your harddrive
    ; $rdgRek - Specifies, whether the function should work recursiv, or not.
    ; $rdgCD - Defines if subdirectories should be created in non-recursive mode.
    ;
    ; Requirement(s): #include <String.au3>; <Array.au3>
    ; Return Value(s): On Success - Returns 1
    ; On Failure - 0 and sets
    ; @ERROR = 1 - Given URL is not a HTTP-Directory
    ; @ERROR = 2 - No Files/Folders found.
    ;
    ; Authors: SEuBo (https://autoit.de/www.autoit.de)
    ;
    ;===============================================================================

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

    Func _RemoteDirGet($rdgUrl, $rdgTarget=@ScriptDir, $rdgRek=1 ,$rdgCD=0)

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

    If FileExists(@TempDir & "\rdg.html") Then FileDelete(@TempDir & "\rdg.html")
    InetGet($rdgUrl, @TempDir & "\rdg.html")
    If StringInStr(FileRead(@TempDir & "\rdg.html"), "Index of ") And StringInStr(FileRead(@TempDir & "\rdg.html"), "<address>") Then
    $rdgLinks = _StringBetween(FileRead(@TempDir & "\rdg.html"), "<a href=""", """>")
    If Not @error Then
    If Not FileExists($rdgTarget) OR Not StringInStr(FileGetAttrib($rdgTarget), "D", 1) Then
    DirCreate($rdgTarget)
    EndIf

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

    For $i = 0 To 3
    _ArrayDelete($rdgLinks, 0)
    Next

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

    If $rdgLinks[0] = "/" Then _ArrayDelete($rdgLinks, 0)

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

    For $i = 0 To UBound($rdgLinks) - 1
    If StringRight($rdgLinks[$i], 1) = "/" Then
    If $rdgRek = 1 Then
    _RemoteDirGet($rdgUrl & "/" & $rdgLinks[$i], $rdgTarget & "\" & $rdgLinks[$i])
    Else
    If $rdgCD = 1 then DirCreate($rdgTarget & "\" & $rdgLinks[$i])
    EndIf
    Else
    InetGet($rdgUrl & "/" & $rdgLinks[$i], $rdgTarget & "\" & $rdgLinks[$i])
    EndIf
    Next
    Return 1
    Else
    SetError(2) ; No Files/Folders found.
    Return 0
    EndIf
    Else
    SetError(1) ; Given URL is not a HTTP-Directory
    Return 0
    EndIf
    EndFunc ;==>_RemoteDirGet

    [/autoit]