我正在考虑使用以下代码,但我想传输数百个文件,并且连接后看起来不可行,然后在每次文件传输时断开连接。
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();
使用单个连接上传所有这些文件有哪些选项?
答案 0 :(得分:3)
我没有证实这是真的,但在我快速的30秒搜索中,如果你设置
request.KeepAlive = true;
在您创建的每个请求(最后一个请求除外)上,显然只有第一个FTPWebRequest建立了完整的登录连接。
然后,当您创建最后一个FTPWebRequest时,请设置
request.KeepAlive = false;
完成后将关闭连接。如果您有权访问FTP服务器的日志,则可以验证这一点。