仅供参考。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace FTPTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
try
{
string serverName = this.textBoxServerName.Text;
string userName = this.textBoxUser.Text;
string password = this.textBoxPassword.Text;
this.textBoxLogo.Text += "正在获取目录\r\n";
this.textBoxLogo.Text += "服务器名: " + serverName + "\r\n";
this.textBoxLogo.Text +="用户名: " + userName + "\r\n";
this.textBoxLogo.Text += "密码: " + password + "\r\n";
StringBuilder result = new StringBuilder();
FtpWebRequest ftp;
ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + serverName));
ftp.Credentials = new NetworkCredential(userName, password);
ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
ftp.UsePassive = false;
WebResponse response = ftp.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
String line = reader.ReadLine();
while (!String.IsNullOrEmpty(line))
{
line = new System.Text.RegularExpressions.Regex("[\\s]+").Replace(line, " ");
string[] lineInfo = line.Split(' ');
this.textBoxLogo.Text += lineInfo[lineInfo.Length - 1] + "\r\n";
line = reader.ReadLine();
}
reader.Close();
response.Close();
this.textBoxLogo.Text += "获取目录结束\r\n";
}
catch (Exception ex)
{
this.textBoxLogo.Text += ex.Message + "\r\n";
this.textBoxLogo.Text += "获取目录失败" + "\r\n";
MessageBox.Show(ex.Message);
}
}
private void textBoxServerName_TextChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
try
{
string serverName = this.textBoxServerName.Text;
string userName = this.textBoxUser.Text;
string password = this.textBoxPassword.Text;
string upFile = this.textBoxUpFile.Text;
this.textBoxLogo.Text += "正在上传文件\r\n";
this.textBoxLogo.Text += "服务器名: " + serverName + "\r\n";
this.textBoxLogo.Text += "用户名: " + userName + "\r\n";
this.textBoxLogo.Text += "密码: " + password + "\r\n";
this.textBoxLogo.Text += "上传文件:" + upFile + "\r\n";
FileInfo fileInf = new FileInfo(upFile);
String uri = serverName + "/" + fileInf.Name;
FtpWebRequest reqFTP;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + uri));
reqFTP.Credentials = new NetworkCredential(userName, password);
reqFTP.KeepAlive = false;
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
reqFTP.UseBinary = true;
reqFTP.UsePassive = false;
reqFTP.ContentLength = fileInf.Length;
int buffLength = 2048;
byte[] buff = new byte[buffLength];
int contentLen;
FileStream fs = fileInf.OpenRead();
Stream strm = reqFTP.GetRequestStream();
contentLen = fs.Read(buff, 0, buffLength);
while (contentLen != 0)
{
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
}
strm.Close();
fs.Close();
this.textBoxLogo.Text += "上传文件结束\r\n";
}
catch (Exception ex)
{
this.textBoxLogo.Text += ex.Message + "\r\n";
this.textBoxLogo.Text += "上传文件失败" + "\r\n";
MessageBox.Show(ex.Message);
}
}
}
}