網(wǎng)絡(luò)上基本都是FTPClient類操作FTP文件,對(duì)于加密的FTPS很少,折騰了很久,記錄下來分享一下。
通過FTPS操作服務(wù)器文件中的文件,下面是上傳和下載的方法。
string ftpIP = "";//FTP ip
string ftpUSER = "";//FTP 用戶名
string ftpPWD = "";//FTP 密碼
--下載文件方法體
FTPSClient client = new FTPSClient();
client.Connect(ftpIP,
new NetworkCredential(ftpUSER, ftpPWD),
ESSLSupportMode.CredentialsRequired | ESSLSupportMode.Implicit,
new RemoteCertificateValidationCallback((a, b, c, d) => { return true; }));
client.SetTransferMode(ETransferMode.Binary);
client.SetTextEncoding(ETextEncoding.UTF8);
IList<DirectoryListItem> filelist = client.GetDirectoryList("/ABC/");
for (int i = 0; i < filelist.Count; i++)
{
client.GetFile("/ABC/" + filelist[i].Name.ToString(), AppDomain.CurrentDomain.BaseDirectory + "Download\\" + filelist[i].Name.ToString());
}
--上傳文件方法體
string sourcePath = AppDomain.CurrentDomain.BaseDirectory + "ABC\\";
FTPSClient client = new FTPSClient();
client.Connect(ftpIP,
new NetworkCredential(ftpUSER, ftpPWD),
ESSLSupportMode.CredentialsRequired | ESSLSupportMode.Implicit,
new RemoteCertificateValidationCallback((a, b, c, d) => { return true; }));
client.SetTransferMode(ETransferMode.Binary);
client.SetTextEncoding(ETextEncoding.UTF8);
DirectoryInfo di = new DirectoryInfo(sourcePath + "\\");
FileInfo[] files = di.GetFiles();
for (int i = 0; i < files.Length; i++)
{
client.PutFile(sourcePath + "\\" + files[i].Name, "/ABC/" + files[i].Name);
//刪除原文件
File.Copy(sourcePath + "\\" + files[i].Name, sourcePath + "_Bak\\" + files[i].Name, true);
File.Delete(sourcePath + "\\" + files[i].Name);
}
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個(gè)人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個(gè)個(gè)人學(xué)習(xí)交流的平臺(tái),網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對(duì)作者和來源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請(qǐng)及時(shí)聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對(duì)此聲明的最終解釋權(quán)。