LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 使用 FluentFTP 基礎(chǔ)

admin
2024年11月9日 15:42 本文熱度 602

前言

FTP(File Transfer Protocol)是一種文件傳輸協(xié)議 ,用于網(wǎng)絡(luò)上進(jìn)行文件傳輸與存儲(chǔ)空間。在編程中,我們需要從FTP服務(wù)器下載文件、查看、刪除或?qū)⒈镜匚募蟼鞯椒?wù)器上。《C# 實(shí)現(xiàn)FTP的上傳與下載操作》介紹了使用 FtpWebRequest 實(shí)現(xiàn)方式。本文簡(jiǎn)述 FluentFTP 動(dòng)態(tài)庫(kù)基礎(chǔ)。

FluentFTP

1、概述

FluentFTP 是一個(gè)完全托管的FTP和FTPS客戶端動(dòng)態(tài)庫(kù),適用于.NET,優(yōu)化了速度。支持FTP和FTPS協(xié)議,提供了上傳、下載、刪除、重命名等操作。而且支持?jǐn)帱c(diǎn)續(xù)傳、異步、ASCII和二進(jìn)制模式傳輸、代理服務(wù)器等。

2、附錄

https://github.com/robinrodricks/FluentFTP
3、使用要求
通過 NuGet 包管理器引用 FluentFTP 庫(kù),或通過引用FluentFTP動(dòng)態(tài)庫(kù)文件。
// 動(dòng)態(tài)庫(kù)文件FluentFTP.dll
4、常用屬性
屬性描述
HostFTP 地址
Port端口,默認(rèn):21
Credentials認(rèn)證信息,一般是用戶賬號(hào)和密碼
IsConnected是否已建立連接,已建立連接可能未認(rèn)證
IsAuthenticated是否已認(rèn)證,建立在IsConnected之上
Status狀態(tài)
Encoding編碼格式,一般采用UTF-8
IsEncrypted表示當(dāng)前是否在Ftps協(xié)議下使用
ValidateCertificate證書驗(yàn)證事件,一般采用Ftps會(huì)用到
Config配置對(duì)象
下表為 Config   常用的幾個(gè)配置

屬性描述
DataConnectionType設(shè)置連接方式,一般主動(dòng)模式建議用AutoActive,被動(dòng)模式建議用AutoPassive
UploadDataType上傳所使用的傳輸模式
DownloadDataType上傳所使用的傳輸模式
DownloadZeroByteFiles0字節(jié)的文件是否需要被下載
DownloadRateLimit下載速度限制,0表示不限制,單位kb
UploadRateLimit上傳速度限制,0表示不限制,單位kb
RetryAttempts當(dāng)上傳或者下載失敗是,重新嘗試的次數(shù)
TimeZoneFtp服務(wù)器時(shí)區(qū),比如北京市UTC+8,所以寫8表示北京時(shí)間
LocalTimeZone本地時(shí)區(qū),格式同TimeZone
EncryptionMode加密模式,一般采用Ftps會(huì)用到
SslProtocols加密協(xié)議,一般采用Ftps會(huì)用到

5、常用方法

5.1、上傳方法

方法描述
UploadBytes上傳文件,文件格式是byte數(shù)組
UploadDirectory上傳整個(gè)本地目錄到服務(wù)器
UploadFile上傳文件,文件格式是本地文件路徑
UploadFiles上傳多個(gè)本地文件到服務(wù)器指定目錄
UploadStream上傳文件,文件格式是流

5.2、下載方法

方法描述
DownloadBytes下載文件,內(nèi)容保存在指定的byte數(shù)組中
DownloadDirectory下載遠(yuǎn)程目錄至本地指定目錄中
DownloadFile下載文件,并保存在指定文件中
DownloadFiles下載多個(gè)文件,并保存在指定目錄下
DownloadStream下載文件,內(nèi)容保存在指定流中

5.3、目錄方法

方法描述
CreateDirectory創(chuàng)建目錄
DeleteDirectory刪除目錄(及文件、子目錄)
DirectoryExists判斷目錄是否已存在
GetListing獲取指定目錄(或者當(dāng)前工作目錄)下的所有文件及子目錄
GetWorkingDirectory獲取當(dāng)前的工作目錄
SetWorkingDirectory設(shè)置當(dāng)前的工作目錄
IsRoot當(dāng)前工作目錄是否是根目錄
MoveDirectory移動(dòng)遠(yuǎn)程目錄到指定位置
Rename重命名,建議使用MoveDirectory代替
EmptyDirectory清空指定目錄

5.4、其他方法

方法描述
AutoDetect自動(dòng)發(fā)現(xiàn)FTP連接的設(shè)置并且返回這些連接的配置文件
AutoConnect自動(dòng)發(fā)現(xiàn)FTP連接的設(shè)置并且使用第一個(gè)配置去連接服務(wù)器
Connect開始連接
Disconnect斷開連接

5.5、文件操作

方法描述
CompareFile本地與遠(yuǎn)程文件進(jìn)行比較,默認(rèn)不會(huì)下載文件,直接比較文件大小和校驗(yàn)hash散列值
DeleteFile刪除遠(yuǎn)程文件
FileExists遠(yuǎn)程文件是否存在
GetChecksum獲取遠(yuǎn)程文件的校驗(yàn)hash散列值
GetFileSize獲取遠(yuǎn)程文件大小
MoveFile移動(dòng)文件
Rename重命名文件,建議使用MoveFile代替

代碼示例

//同步模式FtpClient ftpClient = new FtpClient();// 端口ftpClient.Port = 21;// 地址ftpClient.Host = "127.0.0.1";// 認(rèn)證信息,一般是用戶賬號(hào)和密碼ftpClient.Credentials = new System.Net.NetworkCredential("ftp", "ftp123456");//設(shè)置編碼ftpClient.Encoding = Encoding.UTF8;//Ftp被動(dòng)模式ftpClient.Config.DataConnectionType = FtpDataConnectionType.AutoPassive;//開始連接ftpClient.Connect();//設(shè)置工作目錄ftpClient.SetWorkingDirectory("Picture");//上傳 ftpClient.UploadFile("ProductImage.jpg", "ProductImage.jpg");//下載ftpClient.DownloadFile("ProductImage.jpg""ProductImage.jpg");
 //  using (var fluentClient = new FtpClient("127.0.0.1")) {     // 認(rèn)證信息     fluentClient.Credentials = new NetworkCredential("ftp", "ftp123456");     // 開始連接     fluentClient.Connect();     // 將文件保存到本地     using (var fileStream = File.OpenWrite(@"D:\20241005.mp4"))     {         // 下載文件,內(nèi)容保存在指定流中         fluentClient.DownloadStream(fileStream, "/video/orders/20241005.mp4");     }     // 斷開連接     fluentClient.Disconnect(); }
// Fluent 40版本提供了一個(gè)異步類 AsyncFtpClient 可以實(shí)現(xiàn)異步模式操作
//異步模式var asyncClient = new AsyncFtpClient("127.0.0.1", "ftpuser", "ftp123456", 21);//設(shè)置編碼ftpClient.Encoding = Encoding.UTF8;//Ftp被動(dòng)模式ftpClient.Config.DataConnectionType = FtpDataConnectionType.AutoPassive;//開始連接await ftpClient.Connect();//設(shè)置工作目錄await ftpClient.SetWorkingDirectory("video/orders");//下載await ftpClient.DownloadFile("20241005.mp4", "20241005.mp4");

小結(jié)

以上主要描述了FluentFTP 動(dòng)態(tài)庫(kù)的基礎(chǔ)內(nèi)容,了解 FluentFTP 常用屬性與方法,我們可以根據(jù)這些方法與屬性實(shí)現(xiàn) FTP 相關(guān)的操作。


該文章在 2024/11/11 19:25:10 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲精品日产精品乱码不卡 | 亚洲一区AV在线播放 | 午夜福利小视频免费国产 | 亚洲国产日本韩国欧美mv | 最新精品国偷自产在线美女足 | 亚洲国产第一视频不卡 |