คุณสามารถแนะนำไลบรารี FTP (คลาส) ฟรีสำหรับ C # ได้ไหม
ชั้นเรียนจะต้องเขียนได้ดีและมีผลงานที่ดี
คุณสามารถแนะนำไลบรารี FTP (คลาส) ฟรีสำหรับ C # ได้ไหม
ชั้นเรียนจะต้องเขียนได้ดีและมีผลงานที่ดี
คำตอบ:
คุณอาจพิจารณาFluentFTPซึ่งก่อนหน้านี้รู้จักกันในชื่อSystem.Net.FtpClient System.Net.FtpClient
เผยแพร่ภายใต้ใบอนุญาต MITและพร้อมใช้งานบน NuGet (FluentFTP)
ทำไมคุณไม่ใช้ห้องสมุดที่มาพร้อมกับกรอบ NET: http://msdn.microsoft.com/en-us/library/ms229718.aspx ?
แก้ไข: 2019 เมษายนโดยhttps://stackoverflow.com/users/1527/ คำตอบนี้ใช้ไม่ได้อีกต่อไป คำตอบอื่น ๆ รับรองโดย Microsoft
ได้รับการออกแบบโดย Microsoft ซึ่งไม่แนะนำให้ใช้อีกต่อไป:
เราไม่แนะนำให้คุณใช้คลาส FtpWebRequest สำหรับการพัฒนาใหม่ สำหรับข้อมูลเพิ่มเติมและทางเลือกอื่นสำหรับ FtpWebRequest โปรดดูที่ WebRequest ไม่ควรใช้บน GitHub ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2 )
หน้า 'WebRequest ไม่ควรใช้' ชี้ไปที่คำถามนี้เป็นรายการสุดท้ายของไลบรารี!
FtpWebRequest
ชั้นเดียวจริงๆทำงานให้ง่ายกระทำ FTP การทำธุรกรรมที่สามารถจำลองในรูปแบบขอ / การตอบสนองเช่นการดาวน์โหลดหรืออัปโหลดไฟล์ของแต่ละบุคคล มันยากมากที่จะใช้เพื่อทำงานเช่นการสร้างโครงสร้างโฟลเดอร์ FTP หรืออัปโหลดและดาวน์โหลดในเซสชันเดียวกัน
edtFTPnetเป็นไลบรารี FTP แบบโอเพนซอร์สที่ฟรีและรวดเร็วสำหรับ. NET ซึ่งเขียนด้วยภาษา C #
ฉันชอบAlex FTPS Clientซึ่งเขียนโดยชื่อ Alex Pilotti ของ Microsoft MVP นี่คือไลบรารี C # ที่คุณสามารถใช้ในแอป Console, 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