Das Hochladen von mehreren Dateien in .NET über FTP
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?
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.