Как загрузить файл с FTP-сервера, используя FTP через SSL, используя .NET? - PullRequest
1 голос
/ 28 октября 2010

В заголовке моего поста почти все сказано: как мне загрузить файл с FTP-сервера, используя FTP через SSL, используя .NET?Я прочитал немного, и есть несколько сторонних компонентов, чтобы приобрести эту функциональность.

Дело в том, что это очень специфическая потребность, и она не будет сильно расти, поэтому если загрузку файла с FTP-сервера с использованием FTP через SSL можно выполнить с помощью .NET Framework (т.е. System.Netпространство имен или что-то), то это будет лучше.Мне не нужно много функциональности, но если по какой-то причине кодирование на защищенном FTP-сервере является кошмаром или неосуществимо через .NET Framework BCL, что было бы неплохо знать, так как сторонний .dll может быть лучшим.

Спасибо!

Ответы [ 3 ]

5 голосов
/ 28 октября 2010

Как это:

var request = (FtpWebRequest)WebRequest.Create("ftp://...");
request.EnableSsl = true;
using (var response = request.GetResponse()) 
using (var data = response.GetResponseStream()) {
    ...
}
4 голосов
/ 01 ноября 2010

Вот окончательный код 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)

Полная информация здесь:

Загрузка файлов FTP с использованием FTP через SSL (SFTP) в .NET:
http://allen -conway-dotnet.blogspot.com / 2010/11 / загрузить-FTP-файлы, используя FTP-поверх ssl.html

0 голосов
/ 27 ноября 2010

Если вам нужны дополнительные функции, такие как неявный SSL , проверка хэша или просто более чистый синтаксис, вы можете использовать Ftp.dll FTP / FTPS клиент :

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

Обратите внимание, что это коммерческий продукт, а я его автор.

...