Fluent FTPは、. NETおよび. NET Standard用のFTPおよびFTPSクライアントです。
速度に最適化されており、外部依存性はなく、完全にC#で書かれています。

機能性の特徴
FTP、FXP、FTPS、TLS 1.3によるFTPS、クライアント証明書によるFTPS、およびFTPSプロキシを完全にサポートします。
30種類以上のFTPサーバータイプをサポートします。
様々なファイルとディレクトリのリストをサポートしている(Unix、Windows/IIS、Azure、Pure-FTPd、Pro FTPD、Vax、VMS、Open VMS、Tandem、HP NonStop Guardian、IBM z/OSとOS/400、Windows CE、Serv-Uなど)。
再帰的ディレクトリリストとディレクトリ削除をサポートします。
進捗状況追跡により、サーバーからファイルを簡単にアップロードおよびダウンロードできます。
ファイルとフォルダの作成、追加、読み込み、书き込み、名前変更、、削除。
非同期サポート:すべての操作にasync awaitを使用できます。
C#の使用例
// 通过用户名密码创建连接
var client = new AsyncFtpClient("123.123.123.123", "david", "pass123");
// 连接到服务器,并设置自动重连
await client.AutoConnect();
// 列出所有的文件
foreach (FtpListItem item in await client.GetListing("/htdocs")) {
// 如果是文件类型
if (item.Type == FtpObjectType.File) {
// 获取文件大小
long size = await client.GetFileSize(item.FullName);
// 计算文件 hash
FtpHash hash = await client.GetChecksum(item.FullName);
}
// 获取文件或文件夹的修改时间
DateTime time = await client.GetModifiedTime(item.FullName);
}
// 上传一个文件
await client.UploadFile(@"C:\MyVideo.mp4", "/htdocs/MyVideo.mp4");
// 移动文件
await client.MoveFile("/htdocs/MyVideo.mp4", "/htdocs/MyVideo_2.mp4");
// 下载文件
await client.DownloadFile(@"C:\MyVideo_2.mp4", "/htdocs/MyVideo_2.mp4");
// 删除文件
await client.DeleteFile("/htdocs/MyVideo_2.mp4");
// 关闭连接,结束
await client.Disconnect();