Загрузка нескольких файлов в .net через FTP
Вопрос
Я думаю об использовании следующего кода, но я хочу перенести сотни файлов, и он не выглядит жизнеспособным для подключения, а затем отключать при каждом передаче файлов.
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();
Какие варианты у меня есть для загрузки всех этих файлов с помощью одного соединения?
Решение
Я не подтвердил это правдой, но в моем быстром 30 -секунде поисках, если вы установите
request.KeepAlive = true;
По каждому запросу, которое вы создаете, кроме последнего, по -видимому, только первый FTPWebRequest делает полное подключение к логину.
Затем, когда вы создаете последний ftpwebrequest, установите
request.KeepAlive = false;
И это закроет соединение, когда закончится. Вы можете проверить это, если у вас есть доступ к журналам FTP -сервера.
Не связан с StackOverflow