栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#实现自定义FTP操作封装类实例

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#实现自定义FTP操作封装类实例

本文实例讲述了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 < arStr.Length - 1; i++)
 {
   sResult += BscInfo + "," + arStr[i].Trim() + "n";
 }
 sr.Close();
 byte[] connect = new UTF8Encoding(true).GetBytes(sResult);
 fsFileWrite.Write(connect, 0, connect.Length);
 fsFileWrite.Flush();
 sw.Close();
 fsFile.Close();
 fsFileWrite.Close();
 return true;
      }
      catch (Exception e)
      {
 return false;
      }
    }
    /// 
    /// 删除文件
    /// 
    /// 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#程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/125657.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号