Question

Je pense à l'aide du code ci-dessous, mais je veux transférer des centaines de fichiers et il ne semble pas viable pour connecter et déconnecter à chaque transfert de fichiers.

request = (FtpWebRequest) FtpWebRequest.Create(FtpAddress + file);

request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(User, Pass);

request.UsePassive = IsPassive;
request.UseBinary = true;
request.KeepAlive = false;

FileStream fs = File.OpenRead("");
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();

Stream ftpStream = request.GetRequestStream();
ftpStream.Write(buffer, 0, buffer.Length);

ftpStream.Close();

Quelles sont les options possibles pour télécharger tous ces fichiers à l'aide d'une seule connexion?

Était-ce utile?

La solution

Je n'ai pas vérifié cela est vrai, mais dans mon rapide recherche 30 secondes, si vous définissez

request.KeepAlive = true;

sur chaque demande, vous créez sauf le dernier, apparemment seul le premier FtpWebRequest fait une connexion de connexion complète.

Ensuite, lorsque vous créez la dernière FtpWebRequest, set

request.KeepAlive = false;

et il fermera la connexion lorsque vous avez terminé. Vous pouvez vérifier si vous avez accès aux journaux du serveur FTP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top