Le moyen le plus simple
Le moyen le plus simple de télécharger un fichier sur un serveur FTP à l'aide de .NET Framework consiste à utiliser la WebClient.UploadFile
méthode :
WebClient client = new WebClient();
client.Credentials = new NetworkCredential("username", "password");
client.UploadFile("ftp://ftp.example.com/remote/path/file.zip", @"C:\local\path\file.zip");
Options avancées
Si vous avez besoin d'un plus grand contrôle, qui WebClient
n'offre pas (comme le cryptage TLS / SSL , le mode ASCII, le mode actif, etc.), utilisez FtpWebRequest
. Un moyen simple est de simplement copier un FileStream
dans un flux FTP en utilisant Stream.CopyTo
:
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.UploadFile;
using (Stream fileStream = File.OpenRead(@"C:\local\path\file.zip"))
using (Stream ftpStream = request.GetRequestStream())
{
fileStream.CopyTo(ftpStream);
}
Suivi des progrès
Si vous avez besoin de surveiller la progression d'un téléchargement, vous devez copier vous-même le contenu par morceaux:
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.UploadFile;
using (Stream fileStream = File.OpenRead(@"C:\local\path\file.zip"))
using (Stream ftpStream = request.GetRequestStream())
{
byte[] buffer = new byte[10240];
int read;
while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
ftpStream.Write(buffer, 0, read);
Console.WriteLine("Uploaded {0} bytes", fileStream.Position);
}
}
Pour la progression de l'interface graphique (WinForms ProgressBar
), voir l'exemple C # à l' adresse :
Comment pouvons-nous afficher la barre de progression pour le téléchargement avec FtpWebRequest
Téléchargement du dossier
Si vous souhaitez télécharger tous les fichiers d'un dossier, voir
Télécharger le répertoire des fichiers sur le serveur FTP à l'aide de WebClient .
Pour un téléchargement récursif, consultez
Téléchargement récursif vers un serveur FTP en C #