FAQ ASP.NET/C#

FAQ ASP.NET/C#Consultez toutes les FAQ
Nombre d'auteurs : 39, nombre de questions : 371, dernière mise à jour : 15 juin 2021
Sommaire→Coté serveur et C#→Transferts FTPOn pourra utiliser la méthode suivante :
Sélectionnez
public static FileInfo FtpDownload(Uri uri, NetworkCredential credentials, DirectoryInfo dirInfo)
{
FileInfo fi;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);
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.
byte[] buffer = new byte[2048];
// 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 (FtpWebResponse res = (FtpWebResponse)request.GetResponse())
{
fi = new FileInfo(string.Concat(dirInfo.FullName, uri.Segments[uri.Segments.Length - 1]));
using (BinaryReader stream = new BinaryReader(res.GetResponseStream()))
{
using (FileStream fs = File.Create(fi.FullName, buffer.Length, FileOptions.WriteThrough))
{
// Ecriture du flux dans le fichier block par block
int block;
while ((block = stream.Read(buffer, 0, buffer.Length)) > 0)
{
fs.Write(buffer, 0, block);
}
}
}
}
return fi;
}
public static void TestFtpDownload()
{
// exemple d'utilisation
FtpDownload(new Uri("ftp://hd1.freebox.fr/Disque dur/Enregistrements/test.txt"),
new NetworkCredential("freebox", "000000"),
new DirectoryInfo(@"C:\temp\"));
}Créé le 20 septembre 2009 par Immobilis
On pourra utiliser la méthode suivante :
Sélectionnez
public static bool FtpUpload(Uri uri, NetworkCredential credentials, FileInfo fileInfo)
{
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(Path.Combine(uri.AbsoluteUri, fileInfo.Name));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = credentials;
request.UseBinary = true;
request.KeepAlive = false;
request.UsePassive = true;
byte[] buffer = new byte[2048];
using (Stream stream = request.GetRequestStream())
{
using (FileStream fs = File.OpenRead(fileInfo.FullName))
{
int block;
while ((block = fs.Read(buffer, 0, buffer.Length)) > 0)
{
stream.Write(buffer, 0, block);
}
}
}
return true;
}
public static void TestFtpUpload()
{
// exemple d'utilisation
FtpUpload(new Uri("ftp://hd1.freebox.fr/Disque dur/Enregistrements/"),
new NetworkCredential("freebox", "000000"),
new FileInfo(@"C:\temp\test.txt"));
}Créé le 20 septembre 2009 par Immobilis



