net 最好用的開源 ftp 客戶端庫

net 最好用的開源 ftp 客戶端庫

fluentftp 是一個適用於 .net 和 .net standard 的 ftp 和 ftps 客戶端。

最后更新 2023/7/17 下午7:59
工具箱
预计阅读 2 分钟
分类
.NET
标签
.NET C# 開源

fluentftp 是一個適用於 .net 和 .net standard 的 ftp 和 ftps 客戶端。

並且針對速度進行了優化,沒有外部依賴, 完全用 c# 編寫。

功能特性

完全支持 ftp、fxp、ftps、帶 tls 1.3 的 ftps、帶客戶端證書的 ftps 和 ftps 代理。

全面支持 30 多種 ftp server 類型。

支持各種文件和目錄列表(unix、windows/iis、azure、pure-ftpd、proftpd、vax、vms、openvms、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();

項目地址

https://github.com/robinrodricks/FluentFTP

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2026/2/7

aot使用經驗總結

從項目創建伊始,就應養成良好的習慣,即只要添加了新功能或使用了較新的語法,就及時進行 aot 發布測試。

继续阅读