Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen ob Ordner online existiert

Prüfen ob Ordner online existiert
28.01.2023 12:42:32
Henner
Hallo zusammen
Mit folgendem Code überprüfe ich, ob eine URL oder eine Datei online existiert. Das funktioniert auch problemlos für eine URL (Test1) und eine Datei (Test2). Nun möchte ich aber auch prüfen, ob ein Ordner existiert (Bsp.: "http://www.test.com/folder/subfolder/". Das funktioniert dem dem Code jedoch nicht. Wie kann ich abfragen, ob ein Ordner online existiert? Vielen Dank und Gruss, Henner

Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long

Public Function GetLinkStatus(ByVal strUrl As String) As Boolean
Dim objXMLHTTP As Object
If Not Left$(strUrl, 7) = "http://" Then strUrl = "http://" & strUrl
Set objXMLHTTP = CreateObject("Msxml2.XMLHTTP")
On Error Resume Next
objXMLHTTP.Open "GET", strUrl, False
objXMLHTTP.Send
GetLinkStatus = objXMLHTTP.Status = 200
Set objXMLHTTP = Nothing
On Error GoTo 0
End Function

Public Sub Test1()
DeleteUrlCacheEntry "http://www.test.com/"
If GetLinkStatus("http://www.test.com/") Then MsgBox "URL erreichbar"
End Sub

Public Sub Test2()
DeleteUrlCacheEntry "http://www.test.com/file.txt"
If GetLinkStatus("http://www.test.com/file.txt") Then MsgBox "URL erreichbar"
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Ordner online existiert
29.01.2023 08:43:25
Oberschlumpf
Moin,
änder mal in test1+2 diese Zeile(n)...
If GetLinkStatus("http://www.test.com/") Then MsgBox "URL erreichbar"
...um in...
If GetLinkStatus("http://www.test.com/") Then
MsgBox "URL erreichbar"
Else
MsgBox "URL nicht erreichbar"
End If
(die Formatierbutton funktionieren z Zt leider nicht)
Hilfts?
Ciao
Thorsten
AW: Prüfen ob Ordner online existiert
29.01.2023 11:40:46
Henner
Hi Thorsten
In meinem "richtigen" Code erfolgt die Abfrage auch in dem von Dir vorgeschlagenen Stil, leider jedoch mit dem selben Ergebnis. Da die Abfrage für die Domain URL und Dateien funktioniert, gehe ich auch davon aus dass es nicht an der If-Abfrage liegt.
Ich habe mal eine Datei mit 3 Abfragen erstellt (URL Domain, Datei und Ordner). Alle Objekte existieren testweise und sollten daher erreichbar sein. Der Ordner bleibt jedoch weiterhin nicht erreichbar: https://www.herber.de/bbs/user/157523.xlsm
Vllt hat noch jemand eine Idee. Schönen Sonntag und beste Grüsse
Anzeige
AW: Prüfen ob Ordner online existiert
29.01.2023 11:55:59
Oberschlumpf
Hi,
erst mal - nicht gut - finde ich "In meinem "richtigen" Code erfolgt die Abfrage auch in dem von Dir vorgeschlagenen Stil"
Wieso zeigst du dann zuerst einen anderen Code, der NUR IF THEN enthält?
Hätt ich das mit If Then ELSE gewusst, hätt ich dir meine Idee gar nicht senden brauchen.....da du genau so ja selbst schon versucht hast!
Als Umweg fällt mir nun nur noch ein:
Versuch mit VBA in deinem "du-weißt-nicht-ob-Ordner-vorhanden-ist-oder-nicht" eine txt-Datei zu erstellen.
- wenn das Erstellen mit einem Fehler endet, ist der Ordner nicht vorhanden
- wenn das Erstellen mit Keinem Fehler endet, ist der Ordner vorhanden
andere Ideen hab ich nicht, da ich ja selbst ohne Logindaten nicht auf deine gezeigten URLs zugreifen kann.
Ciao
Thorsten
Anzeige
AW: Prüfen ob Ordner online existiert
29.01.2023 12:30:58
Henner
Hi
Die If Abfrage Test1 und Test2 habe ich nur für das Forum erstellt weil klar ist, dass hier nicht der Fehler liegt, sondern in der Methode der Funktion "GetLinkStatus". Für die Abfrage werden keine Login Daten benötigt. Vllt hat ja jemand anderes noch eine Idee.
Danke und Gruss, Henner
AW: Prüfen ob Ordner online existiert
29.01.2023 18:03:43
JoWE
Hallo Henner,
bei mir "Win 64Bit, Excel 2019" funktioniert es mit der Url "http://www.test.com/" überhaupt nicht (gibt's die Url überhaupt ?).
Habe daher aus Interesse am Thema gegoogelt und hier:
https://stackoverflow.com/questions/35336118/convert-code-for-32-bit-to-64-bit
was gefunden. Damit habe ich dann in der TestJoWE() mit dieser Url: "http://www.quickcheck-sag.com/" getestet.
Option Explicit
'If Win 64Bit and VBA7 Then
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
 Alias "URLDownloadToFileA" (ByVal pCaller As LongPtr, _
 ByVal szURL As String, ByVal szFileName As String, _
 ByVal dwReserved As Long, ByVal lpfnCB As LongPtr) As Long
Private Declare PtrSafe Function DeleteUrlCacheEntry Lib "Wininet.dll" _
 Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
'if Win 32Bit an VBA6 then
'Private Declare Function URLDownloadToFile Lib "urlmon" _
' Alias "URLDownloadToFileA" (yVal pCaller As Long, _
' ByVal szURL As String, ByVal szFileName As String, _
' ByVal dwReserved As Long, ByVal lpfnCB As Long ) As Long
'Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _
' Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String  As Long
'#End If
Public Const ERROR_SUCCESS As Long = 0
Public Const BINDF_GETNEWESTVERSION As Long = &H10
Public Const INTERNET_FLAG_RELOAD As Long = &H80000000
Public Const folderName As String = "c:\temp\"
Public Function GetLinkStatus(ByVal strUrl As String) As Boolean
 Dim objXMLHTTP As Object
If Not Left$(strUrl, 7) = "http://" Then strUrl = "http://" & strUrl
 Set objXMLHTTP = CreateObject("Msxml2.XMLHTTP")
 On Error Resume Next
 objXMLHTTP.Open "GET", strUrl, False
 objXMLHTTP.Send
 GetLinkStatus = objXMLHTTP.Status = 200
 Set objXMLHTTP = Nothing
 On Error GoTo 0
End Function
Public Sub TestJoWE()
DeleteUrlCacheEntry "http://www.quickcheck-sag.com/"
If GetLinkStatus("http://www.quickcheck-sag.com/") = True Then
  MsgBox "URL erreichbar"
 Else
  MsgBox "URL nicht erreichbar"
 End If
End Sub
Gruß
Jochen
Anzeige
AW: Prüfen ob Ordner online existiert
29.01.2023 18:32:05
Henner
Guten Abend Jochen
Vielen Dank für Deine Recherche. Die URL "Test.com" war nur zur Erklärung. Wenn Du wirklich testen möchtest kannst Du das mit der quickcheck-sag.com. Dein Code liefert jedoch die gleichen Resultate wie mein bisheriger Code:
URL Domain www.quickcheck-sag.com/ funktioniert
Datei www.quickcheck-sag.com/test.txt funktioniert
Ordner www.quickcheck-sag.com/test/ funktioniert nicht
Die Datei "test.txt" und der Ordner "test" existieren. Vllt hast Du ja noch eine weitere Idee.. Vielen Dank und Gruss, Henner
AW: aahhh! Habe dann jetzt....
29.01.2023 19:16:51
JoWE
...auch verstanden worum es Dir geht, sorry.
Hallo Henner,
da das Thema bislang so gar nicht nicht Meines gewesen ist, bin ich hier ein totaler Unwissender, der nur mal im Nebel stochern wollte,
Finde es aber wirklich spannend und will mich evtl. weiter damit beschäftigen; um z.B. aus einer Bibliothek-Datenbank
mit einer EAN-Nummern-Suche entsprechende Infos zu Büchern herauszulesen.
Helfen kann ich Dir jedoch leider nicht - zumindest jetzt habe ich noch keine Idee!
Gruß
Jochen
Anzeige
AW: aahhh! Habe dann jetzt....
29.01.2023 19:42:12
Henner
Hallo Jochen
Kein Problem. Vllt. findet sich ja noch jemand der weiss wie man es lösen kann. Stelle das Thema daher wieder auf offen. Gruss Henner

298 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige