cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 2011
-
18 nov. 2008 à 17:17
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 2018
-
18 nov. 2008 à 21:27
Bonjour,
Voilà, je rencontre une difficulté lors du téléchargement sur mon serveur possédant un identifiant et un mot de passe.
Je souhaites télécharger plusieurs fichiers l'un après l'autre.
Le problème que je rencontre c'est que çà échoue la deuxième fois mais après Visual Studio me retourne cette erreur :
(550) Fichier non disponible
<hr size="2" width="100%" />Voici la fonction que j'utilise :
Sub DownloadFileFTP(ByVal FichierLocal As String, ByVal FichierFTP As String, ByVal hote As String, ByVal identifiant As String, ByVal motdepasse As String)
' FichierLocal --> chemin d'accès complet où sera enregistré le fichier --> Exemple : "D:\index.html"
' FichierFTP --> Chemin d'accès complet du fichier à télécharger --> Exemple : "/temp/index.html" pour télécharger le fichier 'index.html' dans le dossier 'temp'
' hote --> Réprésente l'hôte où il faudra se connecter --> Syntaxe : "ftp://hostname"
' identifiant --> Défini le login
' motdepasse --> Défini le mot de passe
'1. Crée une requête : doit être de la forme ftp://hotename
Dim URI As String = hote & FichierFTP
Dim ftp As System.Net.FtpWebRequest = _
CType(FtpWebRequest.Create(URI), FtpWebRequest)
'2. Définir l'identifiant et le mot de passe
ftp.Credentials = New _
System.Net.NetworkCredential(identifiant, motdepasse)
'3. Réglage
ftp.KeepAlive = False
'Utilisation du transfert binaire
ftp.UseBinary = True
'Définir les actions voulues (ici, télécharger un fichier)
Using response As System.Net.FtpWebResponse = CType(ftp.GetResponse, System.Net.FtpWebResponse)
Using responseStream As IO.Stream = response.GetResponseStream
Using fs As New IO.FileStream(FichierLocal, IO.FileMode.Create)
Dim buffer(2047) As Byte
Dim read As Integer = 0
Do
read = responseStream.Read(buffer, 0, buffer.Length)
fs.Write(buffer, 0, read) '----- Ecriture de la variable lue dans le fichier
Loop Until read = 0
responseStream.Close()
fs.Flush()
fs.Close()
End Using
responseStream.Close()
End Using
response.Close()
End Using
End Sub
<hr size="2" width="100%" />Je télécharge plusieurs fichiers l'un après l'autre comme ceci : (j'ai pas mis les paramètres)
Le problème pourrait t-il venir du fait que je lance le téléchargement du fichier suivant alors que le précédent n'est pas encore terminé ? (je penses qu'il doit s'agir de cela) Donc il y a plusieurs connections simultanées sur le serveur d'où l'erreur 550 je penses...
Qu'en pensez vous ?
Si c'est le cas comment je pourrais faire pour qu'il attend la fin du téléchargement du fichier avant de passer au suivant ?