通过FTP上传.NET中的多个文件

时间:2011-01-18 16:23:39

标签: c# .net ftplib

我正在考虑使用以下代码,但我想传输数百个文件,并且连接后看起来不可行,然后在每次文件传输时断开连接。

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

使用单个连接上传所有这些文件有哪些选项?

1 个答案:

答案 0 :(得分:3)

我没有证实这是真的,但在我快速的30秒搜索中,如果你设置

request.KeepAlive = true;

在您创建的每个请求(最后一个请求除外)上,显然只有第一个FTPWebRequest建立了完整的登录连接。

然后,当您创建最后一个FTPWebRequest时,请设置

request.KeepAlive = false;

完成后将关闭连接。如果您有权访问FTP服务器的日志,则可以验证这一点。