API - Ordner anlegen - Dateien aus dem Internet laden...

Frage: Mehrere Dateien sollen aus dem Internet in einen bestimmten Ordner geladen werden (PNG, ZIP, PDF, XLS). Der Ordner soll ohne Nachfrage angelegt werden, wenn er nicht vorhanden ist. Die Dateien sollen lokal den gleichen Namen tragen den sie auch im Internet haben. Wie geht das?

Multiple files should be loaded from the Internet to a specific folder (PNG, ZIP, PDF, XLS). The folder should be created without asking if it is not present. The files are locally the same names they have in the internet. How does it work?

Hier noch eine Beispieldatei / Here's a sample file:
API - Ordner anlegen - Dateien aus dem Internet laden...[XLS 50 KB]

'--------------------------------------------------------------------------
' Module    : Module1
' Author    : Case (Ralf Stolzenburg)
' Date      : 26.04.2013
' Purpose   : Ordner erstellen - Dateien aus dem Internet laden...
'--------------------------------------------------------------------------
Option Explicit
Private Declare Function MakeSureDirectoryPathExists _
    Lib "imagehlp.dll" (ByVal Pfad As String) As Long
Private Declare Function DeleteUrlCacheEntry Lib "wininet" Alias _
    "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
Private Declare Function URLDownloadToFile Lib "urlmon" _
    Alias "URLDownloadToFileA" ( _
    ByVal pCaller As Long, _
    ByVal szURL As String, _
    ByVal szFileName As String, _
    ByVal dwReserved As Long, _
    ByVal lpfnCB As Long) As Long
' Pfad evtl. anpassen - abschliessenden Backslash NICHT vergessen!!!
' Ordner wird automatisch angelegt, wenn er nicht vorhanden ist
Const strBackup As String = "C:\Temp\"
Public Sub GetFiles()
    On Error GoTo Fin
    LoadFiles "http://www.comburg.de/blog/files/Download.pdf"
    LoadFiles "http://www.comburg.de/blog/files/XCOPY_and_more.zip"
    LoadFiles "http://www.comburg.de/blog/files/WMI.xls"
    LoadFiles "http://www.comburg.de/blog/files/Local_Window.png"
Fin:
    If Err.Number <> 0 Then MsgBox "Error: " & _
        Err.Number & " " & Err.Description
End Sub
Public Sub LoadFiles(ByVal strURL As String)
    Dim lngTMP As Long
    Call DeleteUrlCacheEntry(strURL)
    MakeSureDirectoryPathExists strBackup
    lngTMP = URLDownloadToFile(0, strURL, strBackup & _
        Mid(strURL, InStrRev(strURL, "/") + 1), 0, 0)
End Sub

Beliebte Posts aus diesem Blog

Formeln - auch Array - per VBA eintragen...

Alle Dateien eines Ordners - Optional mit Unterordner

Excel -> Word in Textmarken (Bookmarks)...