Dapatkah Anda merekomendasikan perpustakaan FTP gratis (kelas) untuk C #.
Kelas harus ditulis dengan baik, dan memiliki kinerja yang baik.
Dapatkah Anda merekomendasikan perpustakaan FTP gratis (kelas) untuk C #.
Kelas harus ditulis dengan baik, dan memiliki kinerja yang baik.
Jawaban:
Anda dapat mempertimbangkan FluentFTP , sebelumnya dikenal sebagai System.Net.FtpClient .
Ini dirilis di bawah Lisensi MIT dan tersedia di NuGet (FluentFTP).
Mengapa Anda tidak menggunakan pustaka yang disertakan dengan kerangka .NET: http://msdn.microsoft.com/en-us/library/ms229718.aspx ?
EDIT: 2019 April oleh https://stackoverflow.com/users/1527/ Jawaban ini tidak lagi valid. Jawaban lain didukung oleh Microsoft.
Mereka dirancang oleh Microsoft yang tidak lagi merekomendasikan bahwa mereka harus digunakan:
Kami tidak menyarankan Anda menggunakan kelas FtpWebRequest untuk pengembangan baru. Untuk informasi selengkapnya dan alternatif selain FtpWebRequest, lihat WebRequest tidak boleh digunakan di GitHub. ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2 )
Halaman 'WebRequest tidak boleh digunakan' pada gilirannya menunjuk ke pertanyaan ini sebagai daftar perpustakaan yang pasti!
FtpWebRequest
kelas hanya benar-benar bekerja untuk sederhana, tindakan FTP transaksional yang dapat dimodelkan pada pola Permintaan / Response, seperti men-download atau meng-upload file individual. Sangat sulit menggunakannya untuk melakukan tugas-tugas seperti membuat struktur folder FTP atau mengunggah dan mengunduh dalam sesi yang sama.
edtFTPnet adalah pustaka FTP gratis, cepat, dan open source untuk .NET, ditulis dalam C #.
Saya suka Alex FTPS Client yang ditulis dengan nama Microsoft MVP Alex Pilotti. Ini adalah pustaka C # yang dapat Anda gunakan di aplikasi Konsol, Formulir Windows, PowerShell, ASP.NET (dalam bahasa .NET apa pun). Jika Anda memiliki aplikasi multithread, Anda harus mengonfigurasi perpustakaan untuk berjalan secara sinkron, tetapi secara keseluruhan klien bagus yang kemungkinan besar akan memberi Anda apa yang Anda butuhkan.
Anda dapat menggunakan yang ada di CodePlex atau http://www.enterprisedt.com/general/press/20060818.html
Saya baru saja memposting artikel yang menyajikan kelas klien FTP dan kontrol pengguna FTP.
Mereka sederhana dan tidak terlalu cepat, tetapi sangat mudah digunakan dan semua kode sumber disertakan. Cukup jatuhkan kontrol pengguna ke formulir untuk memungkinkan pengguna menavigasi direktori FTP dari aplikasi Anda.
Setelah banyak penyelidikan dalam masalah yang sama, saya menemukan yang ini sangat nyaman: https://github.com/flagbug/FlagFtp
Misalnya (coba lakukan ini dengan "library" .net standar - ini akan sangat merepotkan) -> Secara rekursif mengambil semua file di 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