Puoi consigliarmi una libreria FTP gratuita (classe) per C #.
La classe deve essere ben scritta e avere buone prestazioni.
Puoi consigliarmi una libreria FTP gratuita (classe) per C #.
La classe deve essere ben scritta e avere buone prestazioni.
Risposte:
Puoi prendere in considerazione FluentFTP , precedentemente noto come System.Net.FtpClient .
È rilasciato con licenza MIT e disponibile su NuGet (FluentFTP).
Perché non utilizzi le librerie fornite con .NET Framework: http://msdn.microsoft.com/en-us/library/ms229718.aspx ?
EDIT: 2019 aprile da https://stackoverflow.com/users/1527/ Questa risposta non è più valida. Altre risposte sono approvate da Microsoft.
Sono stati progettati da Microsoft che non consiglia più di utilizzarli:
Si sconsiglia di utilizzare la classe FtpWebRequest per nuovi sviluppi. Per ulteriori informazioni e alternative a FtpWebRequest, vedere WebRequest non deve essere utilizzato su GitHub. ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2 )
La pagina 'WebRequest non dovrebbe essere usato' a sua volta punta a questa domanda come l'elenco definitivo delle biblioteche!
FtpWebRequest
classe funziona davvero solo per azioni FTP semplici e transazionali che possono essere modellate sul modello di richiesta / risposta, come il download o il caricamento di singoli file. È molto difficile utilizzarlo per eseguire attività come creare una struttura di cartelle FTP o caricare e scaricare nella stessa sessione.
edtFTPnet è una libreria FTP gratuita, veloce e open source per .NET, scritta in C #.
Mi piace Alex FTPS Client che è scritto da un nome Microsoft MVP Alex Pilotti. È una libreria C # che puoi usare nelle app console, Windows Form, PowerShell, ASP.NET (in qualsiasi linguaggio .NET). Se hai un'app multithread, dovrai configurare la libreria in modo che venga eseguita in modo sincrono, ma nel complesso un buon client che molto probabilmente ti fornirà ciò di cui hai bisogno.
Potresti usare quelli su CodePlex o http://www.enterprisedt.com/general/press/20060818.html
Ho appena pubblicato un articolo che presenta sia una classe client FTP che un controllo utente FTP.
Sono semplici e non molto veloci, ma sono molto facili da usare e tutto il codice sorgente è incluso. È sufficiente rilasciare il controllo utente su un modulo per consentire agli utenti di navigare nelle directory FTP dall'applicazione.
Dopo molte indagini sullo stesso numero, ho trovato questo estremamente conveniente: https://github.com/flagbug/FlagFtp
Ad esempio (prova a farlo con la "libreria" standard .net - sarà un vero dolore) -> Recupero ricorsivo di tutti i file sul server 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