Вы можете рекомендовать бесплатную FTP-библиотеку (класс) для С#.
Класс должен быть хорошо написан и иметь хорошую производительность.
Вы можете рекомендовать бесплатную FTP-библиотеку (класс) для С#.
Класс должен быть хорошо написан и иметь хорошую производительность.
Вы можете рассмотреть FluentFTP, ранее известный как System.Net.FtpClient.
Он выпущен под Лицензия MIT и доступна на NuGet (FluentFTP).
Почему бы вам не использовать библиотеки, поставляемые с платформой .NET: http://msdn.microsoft.com/en-us/library/ms229718.aspx?
РЕДАКТИРОВАТЬ: 2019 апреля по https://stackoverflow.com/users/1527/ Этот ответ больше не действителен. Другие ответы одобрены Microsoft.
Они были разработаны Microsoft, которая больше не рекомендует их использовать:
Мы не рекомендуем использовать класс FtpWebRequest для новых разработок. Для получения дополнительной информации и альтернатив FtpWebRequest, см. WebRequest не должен использоваться на GitHub. (https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2)
Страница "WebRequest не должен использоваться", в свою очередь, указывает на этот вопрос как на окончательный список библиотек!
edtFTPnet - бесплатная, быстрая библиотека с открытым исходным кодом для .NET, написанная на С#.
Мне нравится Alex FTPS Client, который написан именем Microsoft MVP Alex Pilotti. Это библиотека С#, которую вы можете использовать в консольных приложениях, Windows Forms, PowerShell, ASP.NET(на любом языке .NET). Если у вас многопоточное приложение, вам придется настраивать библиотеку для запуска синхронно, но в целом хороший клиент, который, скорее всего, получит вам то, что вам нужно.
Вы можете использовать те, что на CodePlex или http://www.enterprisedt.com/general/press/20060818.html
Я только опубликовал статью, в которой представлены как клиентский клиент FTP, так и пользовательский контроль FTP.
Они просты и не очень быстры, но очень просты в использовании и включены весь исходный код. Просто опустите элемент управления пользователя в форму, чтобы пользователи могли перемещаться по FTP-каталогам из вашего приложения.
После многих исследований в том же номере я нашел, что это очень удобно: https://github.com/flagbug/FlagFtp
Например (попробуйте сделать это со стандартной .net "library" - это будет настоящая боль) → Рекурсивно восстанавливать все файлы на FTP-сервере:
public IEnumerable<FtpFileInfo> GetFiles(string server, string user, string password)
{
var credentials = new NetworkCredential(user, password);
var baseUri = new Uri("ftp://" + server + "/");
var files = new List<FtpFileInfo>();
AddFilesFromSubdirectory(files, baseUri, credentials);
return files;
}
private void AddFilesFromSubdirectory(List<FtpFileInfo> files, Uri uri, NetworkCredential credentials)
{
var client = new FtpClient(credentials);
var lookedUpFiles = client.GetFiles(uri);
files.AddRange(lookedUpFiles);
foreach (var subDirectory in client.GetDirectories(uri))
{
AddFilesFromSubdirectory(files, subDirectory.Uri, credentials);
}
}