Czy możesz polecić bezpłatną bibliotekę FTP (klasę) dla C #.
Zajęcia muszą być dobrze napisane i mieć dobre wyniki.
Czy możesz polecić bezpłatną bibliotekę FTP (klasę) dla C #.
Zajęcia muszą być dobrze napisane i mieć dobre wyniki.
Odpowiedzi:
Możesz rozważyć FluentFTP , wcześniej znany jako System.Net.FtpClient .
Jest wydany na licencji MIT i dostępny na NuGet (FluentFTP).
Dlaczego nie używasz bibliotek, które są dostarczane z platformą .NET: http://msdn.microsoft.com/en-us/library/ms229718.aspx ?
EDYCJA: 2019 kwiecień przez https://stackoverflow.com/users/1527/ Ta odpowiedź jest już nieaktualna. Inne odpowiedzi są zatwierdzane przez firmę Microsoft.
Zostały zaprojektowane przez Microsoft, który nie zaleca już ich używania:
Nie zalecamy używania klasy FtpWebRequest do nowego programowania. Aby uzyskać więcej informacji i alternatyw dla FtpWebRequest, zobacz WebRequest nie powinien być używany w GitHub. ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2 )
Strona „WebRequest nie powinien być używany” z kolei wskazuje na to pytanie jako ostateczną listę bibliotek!
FtpWebRequest
Klasa tylko naprawdę działa dla prostych, transakcyjne działania FTP, które mogą być modelowane na wzór żądanie / odpowiedź, takich jak pobieranie lub przesyłanie pojedynczych plików. Bardzo trudno jest go używać do wykonywania zadań, takich jak tworzenie struktury folderów FTP lub przesyłanie i pobieranie w tej samej sesji.
edtFTPnet to darmowa, szybka biblioteka FTP typu open source dla platformy .NET, napisana w języku C #.
Podoba mi się Alex FTPS Client, którego autorem jest Alex Pilotti, MVP firmy Microsoft. Jest to biblioteka C #, której można używać w aplikacjach konsoli, Windows Forms, PowerShell, ASP.NET (w dowolnym języku .NET). Jeśli masz aplikację wielowątkową, będziesz musiał skonfigurować bibliotekę tak, aby działała synchronicznie, ale ogólnie dobry klient, który najprawdopodobniej zapewni Ci to, czego potrzebujesz.
Możesz użyć tych na CodePlex lub http://www.enterprisedt.com/general/press/20060818.html
Właśnie opublikowałem artykuł, w którym przedstawiono zarówno klasę klienta FTP, jak i kontrolkę użytkownika FTP.
Są proste i niezbyt szybkie, ale są bardzo łatwe w użyciu i zawierają cały kod źródłowy. Po prostu upuść kontrolę użytkownika na formularzu, aby umożliwić użytkownikom nawigację po katalogach FTP z poziomu aplikacji.
Po wielu badaniach w tej samej sprawie stwierdziłem, że ten jest niezwykle wygodny: https://github.com/flagbug/FlagFtp
Na przykład (spróbuj zrobić to ze standardową "biblioteką" .net - będzie to naprawdę trudne) -> Rekurencyjne pobieranie wszystkich plików na serwerze 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