C# 使用Sockets 存取 FTP Framework1.1 也可使用
這是一份網路上找來的SourceCode 試了一下沒甚麼問題,包含了上傳/刪除FTP檔案、建立資料夾、檔案搬移
把大致的用法做個紀錄
原理:使用System.Net.Sockets 建立FTP連線,下面是連線方法
/// 建立連線
/// </summary>
public void Connect()
{
socketControl = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 21);
// 連線
socketControl.Connect(ep);
// 登入
SendCommand("USER " + "登入帳號");
SendCommand("PASS " + "登入密碼");
}
/// <summary>
/// 傳送命令並取得回應碼和最後一行的回應字串
/// </summary>
/// <param name="strCommand">命令</param>
private void SendCommand(String strCommand)
{
Socket socketControl;
Encoding e = Encoding.GetEncoding("big5");
Byte[] cmdBytes = e.GetBytes((strCommand + "\r\n").ToCharArray());
socketControl.Send(cmdBytes, cmdBytes.Length, 0);
}
使用方法:
已經把SourceCode打包成一個FTClient.cs的檔案,直接呼叫就可以用,SourceCode包含範例都會在附加檔案中
在這裡就只列出基本的上傳/刪除
namespace Web.TestCodeFTP
{
public partial class UploadFTP : System.Web.UI.Page
{
FTPClient FTP;
//上傳檔案
string FileName = "happy.jpg";
//FTP位置
string RemoteHost = "127.0.0.1";
//目地資料夾
string remortePath = "";
//帳號
string RemoteUser = "";
//密碼
string RemotePass = "";
//連接阜
int RemotePort = 21;
protected void Page_Load(object sender, EventArgs e)
{
labPath.Text = Server.MapPath("/Images/") + FileName;
//建立連線
FTP = new FTPClient(RemoteHost, remortePath, RemoteUser, RemotePass, RemotePort);
}
protected void BtnInsert_Click(object sender, EventArgs e)
{
try
{
//上傳
FTP.Put(Server.MapPath("/Images/") + FileName);
Label1.Text = "上傳成功";
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
}
protected void BtnDel_Click(object sender, EventArgs e)
{
try
{
//刪除
FTP.Delete(FileName);
Label1.Text = "刪除成功";
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
}
}
}
點此下載