Hola foro.
Necesito saber si un archivo, como por ejemplo www.pepe.com/log/uno.txt, existe.
Mirando el API lo que he visto parecido es la función IsValidURL, pero no obtengo el resultado que necesito, ya que esta funcion me indica si es "correcta" la URL, pero no si existe.
por ejemplo:
http://www.pepe.com/ es una URL correcta
hrrp:/www.pepe.com/ es una URL incorrecta
http://www.pepe.com/log/noExisto.txt es una URL correcta
sin embardo el archivo /log/noExisto.txt no existe...
no se si me he explicado, creo q si.
(aquí la posteo la función IsValidURL por si alguien la necesita)
Private Const S_FALSE = &H1
Private Const S_OK = &H0
'Only implemented as unicode...
Private Declare Function IsValidURL Lib "URLMON.DLL" (ByVal pbc As Long, ByVal szURL As String, ByVal dwReserved As Long) As Long
Private Sub Form_Load()
'KPD-Team 2001
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
MsgBox "Is valid URL: " + CStr(IsGoodURL("http://www.allapi.net"))
MsgBox "Is valid URL: " + CStr(IsGoodURL("hxxp:/www.allapi.uhoh"))
End Sub
Public Function IsGoodURL(ByVal sURL As String) As Boolean
'The IsValidURL always expects a UNICODE string, but whenever
'VB calls an API function, it converts the strings to ANSI strings.
'That's why we're going to use a trick here. Before calling the function,
'We're going to convert the unicode string to unicode so we get a double
'unicode string.
'Before VB calls the API function, it converts our double unicode string
'to a normal unicode string; exactely what IsValidURL is expecting.
sURL = StrConv(sURL, vbUnicode)
'Now call the function
IsGoodURL = (IsValidURL(ByVal 0&, sURL, 0) = S_OK)
End Function