📄 ftpclient.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace ftpTransport
{
class ftpClient
{
//测试服务器能否打开
public string testConnection(string server,string port,string username,string password)
{
FtpWebResponse response;
//string test = "";
try
{
string fullUrl = server + ":" + port;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullUrl);
request.Credentials = new NetworkCredential(username, password);
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
response = (FtpWebResponse)request.GetResponse();
//test = response.StatusDescription;
string rval = response.WelcomeMessage;
response.Close();
return "登陆成功!";
//return rval + " " + test ;
}
catch (Exception ex)
{
return "失败:" + ex.Message;
}
}
//得到服务器上文件名列表
public string [] GetFileList()
{
FtpWebResponse response=null;
StreamReader reader = null;
string server = Properties.Settings.Default.ftpServer;
string port = Properties.Settings.Default.ftpPort;
string userName = Properties.Settings.Default.ftpUser;
string password = Properties.Settings.Default.ftpPassword;
//创建ftpwebrequest对象
string fullUrl = server +":" + port;
try
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullUrl);
request.Credentials = new NetworkCredential(userName, password);
request.Method = WebRequestMethods.Ftp.ListDirectory;
//向服务器发送请求
response = (FtpWebResponse)request.GetResponse();
//从请求中读取数据
Stream stream = response.GetResponseStream();
reader = new StreamReader(stream);
string content = reader.ReadToEnd();
string[] files = content.Split('\n');
reader.Close();
response.Close();
return files;
}
catch (Exception ex)
{
///if (response == null) return new string[] { "空" };
if(reader !=null)
reader.Close();
if(response!=null)
response.Close();
MyIO.WriteLog("ftpClient.GetFileList() Error:" + ex.Message);
return new string[] { "空" };
}
}
//从服务器上下载文件
public bool DownLoadFile(string url, string filename)
{
FtpWebResponse response = null;
Stream inStream = null;
Stream outStream = null;
try
{
string fullFileName = url + "/" + filename;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullFileName);
string userName = Properties.Settings.Default.ftpUser;
string password = Properties.Settings.Default.ftpPassword;
request.Credentials = new NetworkCredential(userName, password);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.UseBinary = true;
response = (FtpWebResponse)request.GetResponse();
inStream = response.GetResponseStream();
outStream = File.OpenWrite(Properties.Settings.Default.localFilePath);
byte[] buffer = new byte[4096];
int size = 0;
while ((size = inStream.Read(buffer, 0, 4096)) > 0)
{
outStream.Write(buffer, 0, size);
}
if (response != null)
response.Close();
if (inStream != null)
inStream.Close();
if (outStream != null)
outStream.Close();
return true;
}
catch (Exception ex)
{
if (response != null)
response.Close();
if (inStream != null)
inStream.Close();
if (outStream != null)
outStream.Close();
MyIO.WriteLog("ftpClient.DownLoadFile() Error:" + ex.Message);
return false;
}
}
//从服务器上下载文件
public bool DownLoadFile(string filename)
{
string url = Properties.Settings.Default.ftpServer + ":" + Properties.Settings.Default.ftpPort;
FtpWebResponse response = null;
Stream inStream = null;
Stream outStream = null;
try
{
string fullFileName = url + "/" + filename;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullFileName);
string userName = Properties.Settings.Default.ftpUser;
string password = Properties.Settings.Default.ftpPassword;
request.Credentials = new NetworkCredential(userName, password);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.UseBinary = true;
response = (FtpWebResponse)request.GetResponse();
inStream = response.GetResponseStream();
outStream = File.OpenWrite(Properties.Settings.Default.localFilePath+"\\"+filename);
byte[] buffer = new byte[4096];
int size = 0;
while ((size = inStream.Read(buffer, 0, 4096)) > 0)
{
outStream.Write(buffer, 0, size);
}
if (response != null)
response.Close();
if (inStream != null)
inStream.Close();
if (outStream != null)
outStream.Close();
return true;
}
catch (Exception ex)
{
if (response != null)
response.Close();
if (inStream != null)
inStream.Close();
if (outStream != null)
outStream.Close();
MyIO.WriteLog("ftpClient.DownLoadFile() Error:" + ex.Message);
return false;
}
}
//往服务器上写文件
public bool UpLoadFile(string url, string filename,string localfilename)
{
FtpWebResponse response = null;
Stream inStream = null;
Stream outStream = null;
try
{
string fullFileName = url + "/" + filename;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullFileName);
string userName = Properties.Settings.Default.ftpUser;
string password = Properties.Settings.Default.ftpPassword;
request.Credentials = new NetworkCredential(userName, password);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.UseBinary = true;
response = (FtpWebResponse)request.GetResponse();
outStream = response.GetResponseStream();
inStream = File.OpenWrite(Properties.Settings.Default.localFilePath + "/" + localfilename);
byte[] buffer = new byte[4096];
int size = 0;
while ((size = inStream.Read(buffer, 0, 4096)) > 0)
{
outStream.Write(buffer, 0, size);
}
if (response != null)
response.Close();
if (inStream != null)
inStream.Close();
if (outStream != null)
outStream.Close();
return true;
}
catch (Exception ex)
{
if (response != null)
response.Close();
if (inStream != null)
inStream.Close();
if (outStream != null)
outStream.Close();
MyIO.WriteLog("ftpClient.UpLoadFile() Error:" + ex.Message);
return false;
}
}
//往服务器上写文件
public bool UpLoadFile(string filename,string localfilename)
{
string url = Properties.Settings.Default.ftpServer + ":" + Properties.Settings.Default.ftpPort;
FtpWebResponse response = null;
Stream inStream = null;
Stream outStream = null;
try
{
string fullFileName = url + "/" + filename;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullFileName);
string userName = Properties.Settings.Default.ftpUser;
string password = Properties.Settings.Default.ftpPassword;
request.Credentials = new NetworkCredential(userName, password);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.UseBinary = true;
//response = (FtpWebResponse)request.GetResponse();
outStream = request.GetRequestStream();
inStream = File.OpenRead(Properties.Settings.Default.localFilePath + "/" + localfilename);
byte[] buffer = new byte[4096];
int size = 0;
while ((size = inStream.Read(buffer, 0, 4096)) > 0)
{
outStream.Write(buffer, 0, size);
}
//if (response != null)
// response.Close();
if (inStream != null)
inStream.Close();
if (outStream != null)
outStream.Close();
return true;
}
catch (Exception ex)
{
//if (response != null)
// response.Close();
if (inStream != null)
inStream.Close();
if (outStream != null)
outStream.Close();
MyIO.WriteLog("ftpClient.UpLoadFile() Error:" + ex.Message);
return false;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -