Bạn có thể giới thiệu một (lớp) thư viện FTP miễn phí cho C #.
Lớp học phải được viết tốt và có hiệu suất tốt.
Bạn có thể giới thiệu một (lớp) thư viện FTP miễn phí cho C #.
Lớp học phải được viết tốt và có hiệu suất tốt.
Câu trả lời:
Bạn có thể xem xét FluentFTP , trước đây được gọi là System.Net.FtpClient .
Nó được phát hành theo Giấy phép MIT và có sẵn trên NuGet (FluentFTP).
Tại sao bạn không sử dụng các thư viện đi kèm với .NET framework: http://msdn.microsoft.com/en-us/library/ms229718.aspx ?
CHỈNH SỬA: Tháng 4 năm 2019 bởi https://stackoverflow.com/users/1527/ Câu trả lời này không còn hợp lệ. Các câu trả lời khác được xác nhận bởi Microsoft.
Chúng được thiết kế bởi Microsoft, người không còn khuyến nghị rằng chúng nên được sử dụng:
Chúng tôi khuyên bạn không nên sử dụng lớp FtpWebRequest để phát triển mới. Để biết thêm thông tin và các lựa chọn thay thế cho FtpWebRequest, hãy xem WebRequest không nên được sử dụng trên GitHub. ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2 )
Trang 'WebRequest không nên được sử dụng' lần lượt chỉ ra câu hỏi này là danh sách cuối cùng của các thư viện!
FtpWebRequest
lớp học chỉ thực sự làm việc cho đơn giản, hành động FTP giao dịch có thể được mô hình trên mô hình request / response, chẳng hạn như tải hoặc tải lên các tập tin cá nhân. Rất khó sử dụng nó để thực hiện các tác vụ như tạo cấu trúc thư mục FTP hoặc tải lên và tải xuống trong cùng một phiên.
edtFTPnet là một thư viện FTP mã nguồn mở, nhanh, miễn phí cho .NET, được viết bằng C #.
Tôi thích Alex FTPS Client được viết bởi Microsoft MVP tên Alex Pilotti. Đó là thư viện C # mà bạn có thể sử dụng trong các ứng dụng Console, Windows Forms, PowerShell, ASP.NET (bằng bất kỳ ngôn ngữ .NET nào). Nếu bạn có một ứng dụng đa luồng, bạn sẽ phải định cấu hình thư viện để chạy đồng bộ, nhưng nhìn chung, một ứng dụng khách tốt có nhiều khả năng sẽ cung cấp cho bạn những gì bạn cần.
Bạn có thể sử dụng những cái trên CodePlex hoặc http://www.enterprisedt.com/general/press/20060818.html
Tôi vừa đăng một bài báo trình bày cả lớp máy khách FTP và quyền kiểm soát người dùng FTP.
Chúng đơn giản và không nhanh, nhưng rất dễ sử dụng và tất cả mã nguồn đều được bao gồm. Chỉ cần thả quyền kiểm soát của người dùng vào một biểu mẫu để cho phép người dùng điều hướng các thư mục FTP từ ứng dụng của bạn.
Sau nhiều lần điều tra trong cùng một vấn đề, tôi thấy cái này cực kỳ tiện lợi: https://github.com/flagbug/FlagFtp
Ví dụ: (hãy thử làm điều này với "thư viện" .net tiêu chuẩn - đó sẽ là một vấn đề thực sự) -> Truy xuất đệ quy tất cả các tệp trên máy chủ 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