Frage

Ich denke dabei an folgenden Code verwenden, aber ich will Hunderte von Dateien übertragen und es sieht nicht rentabel zu verbinden und trennen Sie dann auf jeder Dateiübertragung.

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();

Welche Möglichkeiten habe ich, für alle diese Dateien unter Verwendung einer einzigen Verbindung Hochladen?

War es hilfreich?

Lösung

Ich habe dies um wahr zu sein nicht überprüft, aber in meiner schnellen 30 Sekunden Suche, wenn Sie

request.KeepAlive = true;

bei jeder Anfrage Sie mit Ausnahme der letzten erstellen, offenbar nur die erste FtpWebRequest macht eine vollständige Login-Verbindung.

Dann, wenn Sie erstellen die letzte FtpWebRequest, Satz

request.KeepAlive = false;

, und es wird die Verbindung schließen, wenn Sie fertig sind. Sie können dies überprüfen, ob Sie Zugriff auf die Protokolle FTP-Server haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top