C 工具類 FTP操作封裝類FTPHelper

2022-06-25 11:00:16 字數 4145 閱讀 5008

c# ftphelper實現ftp伺服器檔案讀寫操作,支援ssl協議(ftp伺服器為:serv-u10.0)。

using

system;

using

system.collections.generic;

using

system.io;

using

system.linq;

using

system.net;

using

system.net.security;

using

system.security.cryptography.x509certificates;

using

system.text;

namespace

ftptest

//////

ftp伺服器ip

/// public

string serverip

//////

ftp埠

/// public

int serverport

//////

ftp使用者

/// public

string username

//////

ftp密碼

/// public

string password

//////

是否啟用ssl

/// public

bool enablessl

#endregion

#region 構造

//////初始化

///

///ip

///埠

///使用者名稱

///密碼

public ftphelper(string ftpserverip, int ftpserverport, string ftpusername, string ftppassword, bool ftpenablessl = false

) :/

", ftpserverip, ftpserverport);

}~ftphelper()

if (request != null

)

}#endregion

#region 方法

//////建立ftp鏈結,返回響應物件

/// ///

ftp位址

///操作命令

private ftpwebresponse open(uri uri, string

ftpmethod)

catch

(exception ex)

}//////

建立ftp鏈結,返回請求物件

/// ///

ftp位址

///操作命令

private ftpwebrequest openrequest(uri uri, string

ftpmethod)

catch

(exception ex)

}//////

證書驗證**

/// private

bool validateservercertificate(object

sender, x509certificate certificate, x509chain chain, sslpolicyerrors sslpolicyerrors)

//////

/// ///

遠端檔案

///本地檔案

public

bool get(string remotefilename, string

localfilename)}}

return

true

; }

catch

}//////

檔案上傳

/// ///

本地檔案

///遠端檔案

public

bool put(string localfilename, string

remotefilename)}}

return

true

; }

catch

}//////

刪除檔案

/// public

bool deletefile(string

filename)

//////

建立目錄

/// public

bool createdirectory(string

dirname)

//////

刪除目錄(包括下面所有子目錄和子檔案)

/// public

bool deletedirectory(string

dirname)

response = open(new uri(ftpuri +dirname), webrequestmethods.ftp.removedirectory);

return response == null ? false : true

; }

//////

獲取目錄的檔案和一級子目錄資訊

/// public listgetdirectoryandfiles(string

dirname)

;if (model.name != "

." && model.name != "

..")//

排除.和..}}

}return

filelist;

}catch

}//////

獲取目錄的檔案

/// public listgetfiles(string

dirname)

;filelist.add(model);}}

}return

filelist;

}catch

}//////

獲得遠端檔案大小

/// public

long getfilesize(string

filename)

//////

檔案是否存在

/// public

bool fileexist(string

filename)

//////

目錄是否存在

/// public

bool directoryexist(string

dirname)

//////

更改目錄或檔名

/// ///

老名稱 ///

新名稱 public

bool rename(string oldname, string

newname)

catch

}#endregion

}

//////

ftp檔案類

/// public

class

filestruct

//////

建立時間(ftp上無法獲得時間)

/// //

public datetime createtime

//////

檔案或目錄名稱

/// public

string name

//////

路徑

/// public

string path

}}

ssl測試呼叫**

var ftp = new ftphelper("

192.168.0.36

", 21, "

test

", "

1", true

);var list = ftp.getfiles("");

任何地方如有紕漏,歡迎諸位道友指教。

用socket封裝ftp類。

最近本人寫了乙個ftp類,想和大家分享一下。ftp協議的底層實現是用socket來實現的。上圖是ftp協議的官方協議圖 可以看出它主要是由兩個socket組成的。1,控制連線,主要是用於傳送控制命令 ftp協議的建立流程 首先,客戶端建立乙個套接字1,套接字繫結的ip和埠為ftp伺服器的ip和著名埠...

C 實現自定義FTP操作封裝類例項

這個c 類封裝了ftp的常用操作,包括連線ftp伺服器 列表伺服器上的目錄和檔案,從ftp 檔案,上傳檔案到ftp伺服器等等 using system using system.text using system.io namespace dotnet.utilities set private s...

FTP基本操作類大全,外加c 基礎公共幫助類

連線ftp伺服器 ftp連線位址 指定ftp連線成功後的當前目錄,如果不指定即預設為根目錄 使用者名稱 密碼 public ftphelper string ftpserverip,string ftpremotepath,string ftpuserid,string ftppassword 2 ...