C#实现自定义FTP操作封装类实例
2021-07-19 13:24
阅读:829
本文实例讲述了C#实现自定义FTP操作封装类。分享给大家供大家参考。具体如下:
这个C#类封装了FTP的常用操作,包括连接ftp服务器、列表服务器上的目录和文件,从ftp下载文件,上传文件到ftp服务器等等
using System;
using System.Text;
using System.IO;
namespace DotNet.Utilities
{
public class FTPOperater
{
#region 属性
private FTPClient ftp;
///
/// 全局FTP访问变量
///
public FTPClient Ftp
{
get { return ftp; }
set { ftp = value; }
}
private string _server;
///
/// Ftp服务器
///
public string Server
{
get { return _server; }
set { _server = value; }
}
private string _User;
///
/// Ftp用户
///
public string User
{
get { return _User; }
set { _User = value; }
}
private string _Pass;
///
/// Ftp密码
///
public string Pass
{
get { return _Pass; }
set { _Pass = value; }
}
private string _FolderZJ;
///
/// Ftp密码
///
public string FolderZJ
{
get { return _FolderZJ; }
set { _FolderZJ = value; }
}
private string _FolderWX;
///
/// Ftp密码
///
public string FolderWX
{
get { return _FolderWX; }
set { _FolderWX = value; }
}
#endregion
///
/// 得到文件列表
///
///
public string[] GetList(string strPath)
{
if (ftp == null) ftp = this.getFtpClient();
ftp.Connect();
ftp.ChDir(strPath);
return ftp.Dir("*");
}
///
/// 下载文件
///
/// ftp目录
/// ftp文件名
/// 本地目录
/// 本地文件名
public bool GetFile(string ftpFolder, string ftpFileName, string localFolder, string localFileName)
{
try
{
if (ftp == null) ftp = this.getFtpClient();
if (!ftp.Connected)
{
ftp.Connect();
ftp.ChDir(ftpFolder);
}
ftp.Get(ftpFileName, localFolder, localFileName);
return true;
}
catch
{
try
{
ftp.DisConnect();
ftp = null;
}
catch { ftp = null; }
return false;
}
}
///
/// 修改文件
///
/// 本地目录
/// 本地文件名temp
/// 本地目录
/// 本地文件名
public bool AddMSCFile(string ftpFolder, string ftpFileName, string localFolder, string localFileName, string BscInfo)
{
string sLine = "";
string sResult = "";
string path = "获得应用程序所在的完整的路径";
path = path.Substring(0, path.LastIndexOf("\\"));
try
{
FileStream fsFile = new FileStream(ftpFolder + "\\" + ftpFileName, FileMode.Open);
FileStream fsFileWrite = new FileStream(localFolder + "\\" + localFileName, FileMode.Create);
StreamReader sr = new StreamReader(fsFile);
StreamWriter sw = new StreamWriter(fsFileWrite);
sr.BaseStream.Seek(0, SeekOrigin.Begin);
while (sr.Peek() > -1)
{
sLine = sr.ReadToEnd();
}
string[] arStr = sLine.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i
/// 删除文件
///
/// ftp目录
/// ftp文件名
public bool DelFile(string ftpFolder, string ftpFileName)
{
try
{
if (ftp == null) ftp = this.getFtpClient();
if (!ftp.Connected)
{
ftp.Connect();
ftp.ChDir(ftpFolder);
}
ftp.Delete(ftpFileName);
return true;
}
catch
{
return false;
}
}
///
/// 上传文件
///
/// ftp目录
/// ftp文件名
public bool PutFile(string ftpFolder, string ftpFileName)
{
try
{
if (ftp == null) ftp = this.getFtpClient();
if (!ftp.Connected)
{
ftp.Connect();
ftp.ChDir(ftpFolder);
}
ftp.Put(ftpFileName);
return true;
}
catch
{
return false;
}
}
///
/// 下载文件
///
/// ftp目录
/// ftp文件名
/// 本地目录
/// 本地文件名
public bool GetFileNoBinary(string ftpFolder, string ftpFileName, string localFolder, string localFileName)
{
try
{
if (ftp == null) ftp = this.getFtpClient();
if (!ftp.Connected)
{
ftp.Connect();
ftp.ChDir(ftpFolder);
}
ftp.GetNoBinary(ftpFileName, localFolder, localFileName);
return true;
}
catch
{
try
{
ftp.DisConnect();
ftp = null;
}
catch
{
ftp = null;
}
return false;
}
}
///
/// 得到FTP上文件信息
///
/// FTP目录
/// ftp文件名
public string GetFileInfo(string ftpFolder, string ftpFileName)
{
string strResult = "";
try
{
if (ftp == null) ftp = this.getFtpClient();
if (ftp.Connected) ftp.DisConnect();
ftp.Connect();
ftp.ChDir(ftpFolder);
strResult = ftp.GetFileInfo(ftpFileName);
return strResult;
}
catch
{
return "";
}
}
///
/// 测试FTP服务器是否可登陆
///
public bool CanConnect()
{
if (ftp == null) ftp = this.getFtpClient();
try
{
ftp.Connect();
ftp.DisConnect();
return true;
}
catch
{
return false;
}
}
///
/// 得到FTP上文件信息
///
/// FTP目录
/// ftp文件名
public string GetFileInfoConnected(string ftpFolder, string ftpFileName)
{
string strResult = "";
try
{
if (ftp == null) ftp = this.getFtpClient();
if (!ftp.Connected)
{
ftp.Connect();
ftp.ChDir(ftpFolder);
}
strResult = ftp.GetFileInfo(ftpFileName);
return strResult;
}
catch
{
return "";
}
}
///
/// 得到文件列表
///
/// FTP目录
/// FTP通配符号
public string[] GetFileList(string ftpFolder, string strMask)
{
string[] strResult;
try
{
if (ftp == null) ftp = this.getFtpClient();
if (!ftp.Connected)
{
ftp.Connect();
ftp.ChDir(ftpFolder);
}
strResult = ftp.Dir(strMask);
return strResult;
}
catch
{
return null;
}
}
///
///得到FTP传输对象
///
public FTPClient getFtpClient()
{
FTPClient ft = new FTPClient();
ft.RemoteHost = this.Server;
ft.RemoteUser = this.User;
ft.RemotePass = this.Pass;
return ft;
}
}
}
希望本文所述对大家的C#程序设计有所帮助。
除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
C#实现自定义FTP操作封装类实例
C#实现自定义FTP操作封装类实例
本文地址: http://www.paobuke.com/develop/c-develop/pbk23069.html
相关内容
C# winform登陆框验证码的实现方法
C#中计时器的简单实现方法示例
使用C#开发ActiveX控件
WPF?¢D?á?ììoíí¨????°′?¥?ùê?′ú??·??í
C#实现简易的加密、解密字符串工具类实例
C#从命令行读取参数的方法
C#中Dictionary的作用及用法讲解
C#使用ping命令的两个例子
评论
亲,登录后才可以留言!