IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Controle Existance de Fichier par le Net


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut Controle Existance de Fichier par le Net
    Salut All,

    Je cherche un moyen efficace et rapide de rechercher et controler si un fichier (dont je connais le nom) est present sur un serveur par internet (connu aussi)
    Ca fait qq temps que je cherche sur msdn et autres, mais sans grand resultat.
    J'ai passe en revu le My.Computer.Network et le System.Net mais ...

    Le mieux que j'ai trouve serait le system.net.webclient, mais j'ai juste besoin d'un retour de boolean.

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il faut faire une requête HTTP "HEAD" (et non POST ou GET), de façon à récupérer seulement les en-têtes. Si tu récupères un code 200 (OK), le fichier existe. S'il n'existe pas, c'est un 404 (Not found).

    La méthode suivante renvoie True si l'URL existe (200), False si elle n'existe pas (404), et lève une exception si une autre erreur se produit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Function CheckUrlExists(url As String) As Boolean
        Dim request As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
        request.Method = "HEAD"
        Try
            Using response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
                If response.StatusCode = HttpStatusCode.OK Then
                    Return True
                Else
                    Return False
                End If
            End Using
        Catch ex As WebException
            Dim response As HttpWebResponse = TryCast(ex.Response, HttpWebResponse)
            If response IsNot Nothing AndAlso response.StatusCode = HttpStatusCode.NotFound Then
                Return False
            Else
                Throw
            End If
        End Try
    End Function

  3. #3
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Je me suis arrete sur ce fameux system.net.httpwebrequest mais il faut dire que la doc m'a laisse ... comment dire ... perplexe
    Un immense merci pour cette function que je vais aller tester de ce pas.

  4. #4
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    C'est nickel tom.
    J'ai juste rajoute un timeout et qq specifications.
    Par contre, je me demande pourquoi le throw ? merci de m'eclairer

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Danyel Voir le message
    C'est nickel tom.
    J'ai juste rajoute un timeout et qq specifications.
    Par contre, je me demande pourquoi le throw ? merci de m'eclairer
    En fait, HttpWebRequest.GetResponse lève toujours une exception si le serveur renvoie un code d'erreur (ce que je trouve pas très pratique d'ailleurs...), d'où le catch. Si l'exception est due à une erreur 404, c'est une erreur "attendue", donc on renvoie False pour dire que le fichier n'existe pas. Par contre, si c'est une autre erreur, genre accès refusé, on ne peut pas déterminer si le fichier existe, donc on relance l'exception interceptée par le catch (c'est à ça que sert le Throw sans paramètre, au cas où tu te demandais )

  6. #6
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Génial ... que dire de plus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/04/2009, 17h44
  2. GERER FICHIER XML PAR VB.NET
    Par yidboulmane dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/09/2008, 14h52
  3. Remplacer des controles ajax dans un site ASP .net par des codes javascript
    Par Contact2012 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/09/2008, 13h50
  4. Transfert de fichiers volumineux par le net
    Par K-Kaï dans le forum Général Conception Web
    Réponses: 8
    Dernier message: 14/07/2008, 13h15
  5. [C#.NET 2.0] récupérer des fichiers par http
    Par cortex024 dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 21/02/2007, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo