c# ftphelper實現ftp伺服器檔案讀寫操作,支援ssl協議(ftp伺服器為:serv-u10.0)。
usingsystem;
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 ...