Un extrait de code que j'ai créé pour synchroniser un web local avec un web distant.
cf
http://claude.barbe3.free.fr/Wformation/barbe/logique/ToursDeHanoi/ToursDeHanoi.htm
cela peut vous être utile....
Test connection site par requête http
Création d'un dossier en FTP
Transfert d'un fichier local en FTP
il faut bien évidement définir les paramètres
adressehttp,
ftpdistant,
user
pass
et les fullpath de fichlocal et fichdistant
Source / Exemple :
dim SousReseau as boolean = TestInternetHttp(ByVal adressehttp As String)
Private Function cree_dossier_FTP(ByVal doss) As Boolean
Dim erreur As String = ""
If SousReseau Then
Dim requete As FtpWebRequest = Nothing
Dim reponse As FtpWebResponse = Nothing
Try 'essai de création du dossier : envoi de la requete
requete = CType(FtpWebRequest.Create(New Uri(doss)), FtpWebRequest)
requete.Method = WebRequestMethods.Ftp.MakeDirectory
requete.UseBinary = True
requete.Credentials = New NetworkCredential(user, pass)
reponse = CType(requete.GetResponse, FtpWebResponse) 'on attend la réponse
requete.Abort() 'on se déconnecte
If reponse.StatusCode = FtpStatusCode.PathnameCreated Then
Return True 'reussite de la création du dossier
Else
erreur = reponse.StatusCode.ToString
End If
Catch generatedExceptionVariable0 As WebException
erreur = generatedExceptionVariable0.Message
Catch generatedExceptionVariable1 As Exception
erreur = generatedExceptionVariable1.Message
End Try
If erreur.Contains("550") Then Return True 'car l'erreur provient de la préexistence du dossier
Else
erreur = "Non connecté - Le site distant " + FTPDistant + "n'est pas accessible."
End If
MsgBox(erreur)
Return False
End Function
Private Function Transfert_FTP(ByVal fichlocal, ByVal fichdistant) As Boolean 'teste si dossier existe, sinon le crée , et transfère le fichier
Dim erreur As String = ""
If Not SousReseau Then
erreur = "Vous n'êtes pas connecté - " + FTPDistant + " inaccessible."
Else
Try 'premier essai d'upload
My.Computer.Network.UploadFile(fichlocal, fichdistant, user, pass, True, 30000)
Return True 'réussite
Catch ex As Exception 'il y a erreur
Dim dosscree = dossier(fichdistant) 'on traite le cas du dossier manquant sur le site distant
If cree_dossier_FTP(dosscree) Then
Try 'essai de copie du fichier
My.Computer.Network.UploadFile(fichlocal, fichdistant, user, pass, True, 30000)
Return True 'sortie avec réussite de la copie
Catch exept As Exception
erreur = exept.Message
End Try
End If
End Try
End If
MsgBox(erreur)
Return False
End Function
Private Function TestInternetHttp(ByVal adressehttp As String) As Boolean
'--- Déclaration des variables de la fonction
Dim requete As HttpWebRequest = Nothing
Dim reponse As HttpWebResponse = Nothing
'--- Suivi des erreurs rencontrées
Try
requete = CType(WebRequest.Create(adressehttp), HttpWebRequest)
reponse = CType(requete.GetResponse, HttpWebResponse)
requete.Abort() '--- Déconnexion
If reponse.StatusCode = HttpStatusCode.OK Then
Return True
Else
Return False
End If
Catch generatedExceptionVariable0 As WebException
Return False
Catch generatedExceptionVariable1 As Exception
Return False
End Try
End Function
Conclusion :
pour voir une application pour une page de mise à jour automatique,
complétant l'utilitaire Publier avec clickonce,
http://claude.barbe3.free.fr/Wformation/barbe/logique/ToursDeHanoi/ToursDeHanoi.htm
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.