FAQ ASP.NET/VB.NET
FAQ ASP.NET/VB.NETConsultez toutes les FAQ
Nombre d'auteurs : 38, nombre de questions : 369, dernière mise à jour : 16 juin 2021
On pourra utiliser la méthode suivante :
Sélectionnez
Public Shared Function FtpDownload
(
ByVal uri As Uri,
ByVal credentials As NetworkCredential,
ByVal dirInfo As DirectoryInfo) As FileInfo
Dim fi As FileInfo
Dim request As FtpWebRequest =
DirectCast
(
WebRequest.
Create
(
uri),
FtpWebRequest)
request.
Credentials =
credentials
request.
UseBinary =
True
request.
Method =
WebRequestMethods.
Ftp.
DownloadFile
'Utilisé pour envoyer la commande "QUIT" au serveur afin de fermer correctement la connexion
request.
KeepAlive =
False
' Taille du tableau servant à stocker les morceaux du fichier.
' On épargne ainsi les ressources du serveur en ne chargeant pas la totalité du fichier.
' Cela permet de transférer rapidement des fichiers volumineux.
Dim buffer As Byte
(
) =
New Byte
(
2047
) {}
' Variable de mesure de la taille du morceau de fichier lu. Permet d'
indiquer que le fichier a été lu et écrit en totalité.
' Recupération de la réponse
Using res As FtpWebResponse =
DirectCast
(
request.
GetResponse
(
),
FtpWebResponse)
fi =
New FileInfo
(
String.
Concat
(
dirInfo.
FullName,
uri.
Segments
(
uri.
Segments.
Length -
1
)))
Using stream As New BinaryReader
(
res.
GetResponseStream
(
))
Using fs As FileStream =
File.
Create
(
fi.
FullName,
buffer.
Length,
FileOptions.
WriteThrough)
' Ecriture du flux dans le fichier block par block
Dim block As Integer
While ((
block =
stream.
Read
(
buffer,
0
,
buffer.
Length)) >
0
)
fs.
Write
(
buffer,
0
,
block)
End While
End Using
End Using
End Using
Return fi
End Function
Public Shared Sub TestFtpDownload
(
)
' exemple d'
utilisation
FtpDownload
(
New Uri
(
"ftp://hd1.freebox.fr/Disque dur/Enregistrements/test.txt"
),
_
New NetworkCredential
(
"freebox"
,
"000000"
),
_
New DirectoryInfo
(
"C:
\t
emp
\"
))
End Sub
On pourra utiliser la méthode suivante :
Sélectionnez
Public Shared Function FtpUpload
(
ByVal uri As Uri,
ByVal credentials As NetworkCredential,
ByVal fileInfo As FileInfo) As Boolean
Dim request As FtpWebRequest =
DirectCast
(
FtpWebRequest.
Create
(
Path.
Combine
(
uri.
AbsoluteUri,
fileInfo.
Name)),
FtpWebRequest)
request.
Method =
WebRequestMethods.
Ftp.
UploadFile
request.
Credentials =
credentials
request.
UseBinary =
True
request.
KeepAlive =
False
request.
UsePassive =
True
Dim buffer As Byte
(
) =
New Byte
(
2047
) {}
Using stream As Stream =
request.
GetRequestStream
(
)
Using fs As FileStream =
File.
OpenRead
(
fileInfo.
FullName)
Dim block As Integer
While ((
block =
fs.
Read
(
buffer,
0
,
buffer.
Length)) >
0
)
stream.
Write
(
buffer,
0
,
block)
End While
End Using
End Using
Return (
True)
End Function
Public Shared Sub TestFtpUpload
(
)
' exemple d'
utilisation
FtpUpload
(
New Uri
(
"ftp://hd1.freebox.fr/Disque dur/Enregistrements/"
),
_
New NetworkCredential
(
"freebox"
,
"000000"
),
_
New FileInfo
(
"C:
\t
emp
\t
est.txt"
))
End Sub