Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Octubre 23, 2010, 07:19:48 pm

Título: Verificar desde Visual Basic si existe un archivo en Internet
Publicado por: Bazooka en Octubre 23, 2010, 07:19:48 pm
Hola necesito verificar si un archivo existe en mi servidor antes de tomar una desición en el codigo. Seria algo como DIR pero en una ruta como "http://www.misitio.com.ar/guia/banner.swf"

Gracias!!!
Título: Re:Verificar desde Visual Basic si existe un archivo en Internet
Publicado por: LeandroA en Octubre 23, 2010, 08:31:20 pm
Código: (Vb) [Seleccionar]
'by Karcrack
Option Explicit
'WININET
Private Declare Function HttpQueryInfoW Lib "WININET" (ByVal hRequest As Long, ByVal dwInfoLevel As Long, ByRef lpBuffer As Any, ByRef lpdwBufferLength As Long, ByRef lpdwIndex As Long) As Long
Private Declare Function InternetCloseHandle Lib "WININET" (ByVal hInternet As Long) As Boolean
Private Declare Function InternetOpenW Lib "WININET" (ByVal lpszAgent As Long, ByVal dwAccessType As Long, ByVal lpszProxy As Long, ByVal lpszProxyBypass As Long, ByVal dwFlags As Long) As Long
Private Declare Function InternetOpenUrlW Lib "WININET" (ByVal hInternet As Long, ByVal lpszUrl As Long, ByVal lpszHeaders As Long, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByRef dwContext As Long) As Long

Private Const INTERNET_OPEN_TYPE_DIRECT As Long = 1
Private Const INTERNET_FLAG_RELOAD      As Long = &H80000000
Private Const HTTP_QUERY_STATUS_CODE    As Long = 19
Private Const HTTP_QUERY_FLAG_NUMBER    As Long = &H20000000
Private Const HTTP_STATUS_OK            As Long = 200
Private Const HTTP_STATUS_REDIRECT      As Long = 302
Private Const STRING_AGENT              As String = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"

Public Function CheckWetherExists(ByVal sURL As String) As Boolean
    Dim hInet                           As Long
    Dim hURL                            As Long
    Dim lStatus                         As Long

    hInet = InternetOpenW(StrPtr(STRING_AGENT), INTERNET_OPEN_TYPE_DIRECT, 0&, 0&, 0&)
    If hInet = 0 Then GoTo Fail

    hURL = InternetOpenUrlW(hInet, StrPtr(sURL), 0&, 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
    If hURL = 0 Then GoTo Fail

    If HttpQueryInfoW(hURL, HTTP_QUERY_FLAG_NUMBER Or HTTP_QUERY_STATUS_CODE, lStatus, &H4, ByVal 0&) Then
        CheckWetherExists = (lStatus = HTTP_STATUS_OK) Or (lStatus = HTTP_STATUS_REDIRECT)
    End If

Fail:
    Call InternetCloseHandle(hInet)
    Call InternetCloseHandle(hURL)
End Function
Título: Re:Verificar desde Visual Basic si existe un archivo en Internet
Publicado por: Bazooka en Octubre 24, 2010, 09:08:15 am
Capisimo!! leandro gracias!