我的帖子标题几乎说明了一切:如何使用.NET使用FTP over SSL从FTP服务器下载文件?我已经阅读了一些内容,并且有几个第三方组件需要购买以完成此功能。
这笔交易是,这是一个非常特殊的需求,并且不会增长太多,所以如果使用FTP通过SSL从FTP服务器下载文件可以使用.NET Framework(即System.Net命名空间或其他东西)来完成)那么那将是最好的。我不需要大量的功能,但如果由于某种原因编码安全的FTP服务器是一个噩梦或通过.NET Framework BCL无法实现,这将是很好的知道,作为第三方.dll可能是最好的。
谢谢!
答案 0 :(得分:5)
像这样:
var request = (FtpWebRequest)WebRequest.Create("ftp://...");
request.EnableSsl = true;
using (var response = request.GetResponse())
using (var data = response.GetResponseStream()) {
...
}
答案 1 :(得分:4)
这是我使用的最终VB.NET代码:
Dim request As System.Net.FtpWebRequest = DirectCast(WebRequest.Create(New Uri("ftp://sftp.domain.com/myFile.txt")), System.Net.FtpWebRequest)
request.Method = WebRequestMethods.Ftp.DownloadFile
request.EnableSsl = True
request.Credentials = New Net.NetworkCredential("username", "password")
request.UsePassive = True
Dim response As System.Net.FtpWebResponse = DirectCast(request.GetResponse(), System.Net.FtpWebResponse)
此处详细信息:
在.NET中使用FTP over SSL(SFTP)下载FTP文件:
http://allen-conway-dotnet.blogspot.com/2010/11/download-ftp-files-using-ftp-over-ssl.html
答案 2 :(得分:0)
如果您需要更多功能,例如隐式SSL ,哈希验证或更简洁的语法,您可以使用Ftp.dll FTP/FTPS client:
using(Ftp ftp = new Ftp())
{
ftp.Connect("ftp.server.com");
ftp.Login("user", "password");
ftp.ChangeFolder("downloads");
ftp.Download("report.txt", @"c:\report.txt");
ftp.Close();
}
请注意,这是商业产品,我是作者。