Чи можете ви порекомендувати безкоштовну бібліотеку FTP (клас) для C #.
Клас повинен бути добре написаний і мати хороші результати.
Чи можете ви порекомендувати безкоштовну бібліотеку FTP (клас) для C #.
Клас повинен бути добре написаний і мати хороші результати.
Відповіді:
Ви можете розглянути FluentFTP , раніше відомий як System.Net.FtpClient .
Він випускається під ліцензією MIT і доступний на NuGet (FluentFTP).
Чому б вам не використовувати бібліотеки, що постачаються з фреймворком .NET: http://msdn.microsoft.com/en-us/library/ms229718.aspx ?
EDIT: 2019, квітень, https://stackoverflow.com/users/1527/ Ця відповідь більше не діє. Інші відповіді схвалює Microsoft.
Вони були розроблені корпорацією Майкрософт, яка більше не рекомендує використовувати їх:
Ми не рекомендуємо використовувати клас FtpWebRequest для нової розробки. Для отримання додаткової інформації та альтернатив FtpWebRequest, див. WebRequest не слід використовувати на GitHub. ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2 )
Сторінка "WebRequest не слід використовувати", у свою чергу, вказує на це питання як остаточний список бібліотек!
FtpWebRequest
Клас тільки дійсно працює для простих, транзакційні FTP дії , які можуть бути змодельовані за зразком Request / Response, наприклад, завантаження або окремих файлів. Дуже важко використовувати його для виконання таких завдань, як створення структури папки FTP або завантаження та завантаження за один і той же сеанс.
edtFTPnet - це безкоштовна, швидка, відкрита FTP-бібліотека для .NET, написана на C #.
Мені подобається клієнт Alex FTPS, який написаний під іменем Microsoft MVP Alex Pilotti. Це бібліотека C #, яку можна використовувати в консольних додатках, Windows Forms, PowerShell, ASP.NET (будь-якою мовою .NET). Якщо у вас є багатопотокова програма, вам доведеться налаштувати бібліотеку для синхронної роботи, але загалом хороший клієнт, який, швидше за все, отримає вам те, що вам потрібно.
Ви можете використовувати такі на CodePlex або http://www.enterprisedt.com/general/press/20060818.html
Я щойно опублікував статтю, яка представляє як клас клієнта FTP, так і елемент керування FTP.
Вони прості і не дуже швидкі, але дуже прості у використанні, і всі вихідні коди включені. Просто опустіть елемент керування користувача у форму, щоб дозволити користувачам переходити до каталогів FTP із вашої програми.
Після багатьох розслідувань у тому самому питанні я знайшов це надзвичайно зручним: https://github.com/flagbug/FlagFtp
Наприклад (спробуйте зробити це за допомогою стандартної .net "бібліотеки" - це буде справжньою проблемою) -> Рекурсивне відновлення всіх файлів на 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);
}
}
FtpListItem[] items = ftp.GetListing();//here you can get list with type, name, modified date and other properties. FtpFile file = new FtpFile(ftp, "8051812.xml");//file to get file.Download("c:\\8051812.xml");//download file.Name = "8051814.xml";//change name to get new file.Download("c:\\8051814.xml"); ftp.Disconnect();//close