C#實現自訂FTP操作封裝類執行個體

來源:互聯網
上載者:User

標籤:returns   oca   add   href   try   opera   ref   www   none   

本文執行個體講述了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;    /// <summary>    /// 全域FTP訪問變數    /// </summary>    public FTPClient Ftp    {      get { return ftp; }      set { ftp = value; }    }    private string _server;    /// <summary>    /// Ftp伺服器    /// </summary>    public string Server    {      get { return _server; }      set { _server = value; }    }    private string _User;    /// <summary>    /// Ftp使用者    /// </summary>    public string User    {      get { return _User; }      set { _User = value; }    }    private string _Pass;    /// <summary>    /// Ftp密碼    /// </summary>    public string Pass    {      get { return _Pass; }      set { _Pass = value; }    }    private string _FolderZJ;    /// <summary>    /// Ftp密碼    /// </summary>    public string FolderZJ    {      get { return _FolderZJ; }      set { _FolderZJ = value; }    }    private string _FolderWX;    /// <summary>    /// Ftp密碼    /// </summary>    public string FolderWX    {      get { return _FolderWX; }      set { _FolderWX = value; }    }    #endregion    /// <summary>    /// 得到檔案清單    /// </summary>    /// <returns></returns>    public string[] GetList(string strPath)    {      if (ftp == null) ftp = this.getFtpClient();      ftp.Connect();      ftp.ChDir(strPath);      return ftp.Dir("*");    }    /// <summary>    /// 下載檔案    /// </summary>    /// <param name="ftpFolder">ftp目錄</param>    /// <param name="ftpFileName">ftp檔案名稱</param>    /// <param name="localFolder">本地目錄</param>    /// <param name="localFileName">本地檔案名稱</param>    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;      }    }    /// <summary>    /// 修改檔案    /// </summary>    /// <param name="ftpFolder">本地目錄</param>    /// <param name="ftpFileName">本地檔案名稱temp</param>    /// <param name="localFolder">本地目錄</param>    /// <param name="localFileName">本地檔案名稱</param>    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;      }    }    /// <summary>    /// 刪除檔案    /// </summary>    /// <param name="ftpFolder">ftp目錄</param>    /// <param name="ftpFileName">ftp檔案名稱</param>    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;      }    }    /// <summary>    /// 上傳檔案    /// </summary>    /// <param name="ftpFolder">ftp目錄</param>    /// <param name="ftpFileName">ftp檔案名稱</param>    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;      }    }    /// <summary>    /// 下載檔案    /// </summary>    /// <param name="ftpFolder">ftp目錄</param>    /// <param name="ftpFileName">ftp檔案名稱</param>    /// <param name="localFolder">本地目錄</param>    /// <param name="localFileName">本地檔案名稱</param>    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;      }    }    /// <summary>    /// 得到FTP上檔案資訊    /// </summary>    /// <param name="ftpFolder">FTP目錄</param>    /// <param name="ftpFileName">ftp檔案名稱</param>    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 "";      }    }    /// <summary>    /// 測試FTP伺服器是否可登陸    /// </summary>    public bool CanConnect()    {      if (ftp == null) ftp = this.getFtpClient();      try      {        ftp.Connect();        ftp.DisConnect();        return true;      }      catch      {        return false;      }    }    /// <summary>    /// 得到FTP上檔案資訊    /// </summary>    /// <param name="ftpFolder">FTP目錄</param>    /// <param name="ftpFileName">ftp檔案名稱</param>    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 "";      }    }    /// <summary>    /// 得到檔案清單    /// </summary>    /// <param name="ftpFolder">FTP目錄</param>    /// <returns>FTP萬用字元號</returns>    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;      }    }    /// <summary>    ///得到FTP傳輸對象    /// </summary>    public FTPClient getFtpClient()    {      FTPClient ft = new FTPClient();      ft.RemoteHost = this.Server;      ft.RemoteUser = this.User;      ft.RemotePass = this.Pass;      return ft;    }  }}

希望本文所述對大家的C#程式設計有所協助。

除聲明外, 跑步客文章均為原創,轉載請以連結形式標明本文地址
  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命令的兩個例子

C#實現自訂FTP操作封裝類執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.