[C#] C#自定义FTP操作封装类 →→→→→进入此内容的聊天室

来自 , 2019-05-16, 写在 C#, 查看 107 次.
URL http://www.code666.cn/view/d4031374
  1. using System;
  2. using System.Text;
  3. using System.IO;
  4.  
  5. namespace DotNet.Utilities
  6. {
  7.     public class FTPOperater
  8.     {
  9.         #region 属性
  10.         private FTPClient ftp;
  11.         /// <summary>
  12.         /// 全局FTP访问变量
  13.         /// </summary>
  14.         public FTPClient Ftp
  15.         {
  16.             get { return ftp; }
  17.             set { ftp = value; }
  18.         }
  19.  
  20.         private string _server;
  21.         /// <summary>
  22.         /// Ftp服务器
  23.         /// </summary>
  24.         public string Server
  25.         {
  26.             get { return _server; }
  27.             set { _server = value; }
  28.         }
  29.  
  30.         private string _User;
  31.         /// <summary>
  32.         /// Ftp用户
  33.         /// </summary>
  34.         public string User
  35.         {
  36.             get { return _User; }
  37.             set { _User = value; }
  38.         }
  39.  
  40.         private string _Pass;
  41.         /// <summary>
  42.         /// Ftp密码
  43.         /// </summary>
  44.         public string Pass
  45.         {
  46.             get { return _Pass; }
  47.             set { _Pass = value; }
  48.         }
  49.  
  50.         private string _FolderZJ;
  51.         /// <summary>
  52.         /// Ftp密码
  53.         /// </summary>
  54.         public string FolderZJ
  55.         {
  56.             get { return _FolderZJ; }
  57.             set { _FolderZJ = value; }
  58.         }
  59.  
  60.         private string _FolderWX;
  61.         /// <summary>
  62.         /// Ftp密码
  63.         /// </summary>
  64.         public string FolderWX
  65.         {
  66.             get { return _FolderWX; }
  67.             set { _FolderWX = value; }
  68.         }
  69.         #endregion
  70.  
  71.         /// <summary>
  72.         /// 得到文件列表
  73.         /// </summary>
  74.         /// <returns></returns>
  75.         public string[] GetList(string strPath)
  76.         {
  77.             if (ftp == null) ftp = this.getFtpClient();
  78.             ftp.Connect();
  79.             ftp.ChDir(strPath);
  80.             return ftp.Dir("*");
  81.         }
  82.  
  83.         /// <summary>
  84.         /// 下载文件
  85.         /// </summary>
  86.         /// <param name="ftpFolder">ftp目录</param>
  87.         /// <param name="ftpFileName">ftp文件名</param>
  88.         /// <param name="localFolder">本地目录</param>
  89.         /// <param name="localFileName">本地文件名</param>
  90.         public bool GetFile(string ftpFolder, string ftpFileName, string localFolder, string localFileName)
  91.         {
  92.             try
  93.             {
  94.                 if (ftp == null) ftp = this.getFtpClient();
  95.                 if (!ftp.Connected)
  96.                 {
  97.                     ftp.Connect();
  98.                     ftp.ChDir(ftpFolder);
  99.                 }
  100.                 ftp.Get(ftpFileName, localFolder, localFileName);
  101.  
  102.                 return true;
  103.             }
  104.             catch
  105.             {
  106.                 try
  107.                 {
  108.                     ftp.DisConnect();
  109.                     ftp = null;
  110.                 }
  111.                 catch { ftp = null; }
  112.                 return false;
  113.             }
  114.         }
  115.  
  116.         /// <summary>
  117.         /// 修改文件
  118.         /// </summary>
  119.         /// <param name="ftpFolder">本地目录</param>
  120.         /// <param name="ftpFileName">本地文件名temp</param>
  121.         /// <param name="localFolder">本地目录</param>
  122.         /// <param name="localFileName">本地文件名</param>
  123.         public bool AddMSCFile(string ftpFolder, string ftpFileName, string localFolder, string localFileName, string BscInfo)
  124.         {
  125.             string sLine = "";
  126.             string sResult = "";
  127.             string path = "获得应用程序所在的完整的路径";
  128.             path = path.Substring(0, path.LastIndexOf("\\"));
  129.             try
  130.             {
  131.                 FileStream fsFile = new FileStream(ftpFolder + "\\" + ftpFileName, FileMode.Open);
  132.                 FileStream fsFileWrite = new FileStream(localFolder + "\\" + localFileName, FileMode.Create);
  133.                 StreamReader sr = new StreamReader(fsFile);
  134.                 StreamWriter sw = new StreamWriter(fsFileWrite);
  135.                 sr.BaseStream.Seek(0, SeekOrigin.Begin);
  136.                 while (sr.Peek() > -1)
  137.                 {
  138.                     sLine = sr.ReadToEnd();
  139.                 }
  140.                 string[] arStr = sLine.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
  141.  
  142.                 for (int i = 0; i < arStr.Length - 1; i++)
  143.                 {
  144.                     sResult += BscInfo + "," + arStr[i].Trim() + "\n";
  145.                 }
  146.                 sr.Close();
  147.                 byte[] connect = new UTF8Encoding(true).GetBytes(sResult);
  148.                 fsFileWrite.Write(connect, 0, connect.Length);
  149.                 fsFileWrite.Flush();
  150.                 sw.Close();
  151.                 fsFile.Close();
  152.                 fsFileWrite.Close();
  153.                 return true;
  154.             }
  155.             catch (Exception e)
  156.             {
  157.                 return false;
  158.             }
  159.         }
  160.  
  161.         /// <summary>
  162.         /// 删除文件
  163.         /// </summary>
  164.         /// <param name="ftpFolder">ftp目录</param>
  165.         /// <param name="ftpFileName">ftp文件名</param>
  166.         public bool DelFile(string ftpFolder, string ftpFileName)
  167.         {
  168.             try
  169.             {
  170.                 if (ftp == null) ftp = this.getFtpClient();
  171.                 if (!ftp.Connected)
  172.                 {
  173.                     ftp.Connect();
  174.                     ftp.ChDir(ftpFolder);
  175.                 }
  176.                 ftp.Delete(ftpFileName);
  177.                 return true;
  178.             }
  179.             catch
  180.             {
  181.                 return false;
  182.             }
  183.         }
  184.  
  185.         /// <summary>
  186.         /// 上传文件
  187.         /// </summary>
  188.         /// <param name="ftpFolder">ftp目录</param>
  189.         /// <param name="ftpFileName">ftp文件名</param>
  190.         public bool PutFile(string ftpFolder, string ftpFileName)
  191.         {
  192.             try
  193.             {
  194.                 if (ftp == null) ftp = this.getFtpClient();
  195.                 if (!ftp.Connected)
  196.                 {
  197.                     ftp.Connect();
  198.                     ftp.ChDir(ftpFolder);
  199.                 }
  200.                 ftp.Put(ftpFileName);
  201.                 return true;
  202.             }
  203.             catch
  204.             {
  205.                 return false;
  206.             }
  207.         }
  208.  
  209.         /// <summary>
  210.         /// 下载文件
  211.         /// </summary>
  212.         /// <param name="ftpFolder">ftp目录</param>
  213.         /// <param name="ftpFileName">ftp文件名</param>
  214.         /// <param name="localFolder">本地目录</param>
  215.         /// <param name="localFileName">本地文件名</param>
  216.         public bool GetFileNoBinary(string ftpFolder, string ftpFileName, string localFolder, string localFileName)
  217.         {
  218.             try
  219.             {
  220.                 if (ftp == null) ftp = this.getFtpClient();
  221.                 if (!ftp.Connected)
  222.                 {
  223.                     ftp.Connect();
  224.                     ftp.ChDir(ftpFolder);
  225.                 }
  226.                 ftp.GetNoBinary(ftpFileName, localFolder, localFileName);
  227.                 return true;
  228.             }
  229.             catch
  230.             {
  231.                 try
  232.                 {
  233.                     ftp.DisConnect();
  234.                     ftp = null;
  235.                 }
  236.                 catch
  237.                 {
  238.                     ftp = null;
  239.                 }
  240.                 return false;
  241.             }
  242.         }
  243.  
  244.         /// <summary>
  245.         /// 得到FTP上文件信息
  246.         /// </summary>
  247.         /// <param name="ftpFolder">FTP目录</param>
  248.         /// <param name="ftpFileName">ftp文件名</param>
  249.         public string GetFileInfo(string ftpFolder, string ftpFileName)
  250.         {
  251.             string strResult = "";
  252.             try
  253.             {
  254.                 if (ftp == null) ftp = this.getFtpClient();
  255.                 if (ftp.Connected) ftp.DisConnect();
  256.                 ftp.Connect();
  257.                 ftp.ChDir(ftpFolder);
  258.                 strResult = ftp.GetFileInfo(ftpFileName);
  259.                 return strResult;
  260.             }
  261.             catch
  262.             {
  263.                 return "";
  264.             }
  265.         }
  266.  
  267.         /// <summary>
  268.         /// 测试FTP服务器是否可登陆
  269.         /// </summary>
  270.         public bool CanConnect()
  271.         {
  272.             if (ftp == null) ftp = this.getFtpClient();
  273.             try
  274.             {
  275.                 ftp.Connect();
  276.                 ftp.DisConnect();
  277.                 return true;
  278.             }
  279.             catch
  280.             {
  281.                 return false;
  282.             }
  283.         }
  284.  
  285.         /// <summary>
  286.         /// 得到FTP上文件信息
  287.         /// </summary>
  288.         /// <param name="ftpFolder">FTP目录</param>
  289.         /// <param name="ftpFileName">ftp文件名</param>
  290.         public string GetFileInfoConnected(string ftpFolder, string ftpFileName)
  291.         {
  292.             string strResult = "";
  293.             try
  294.             {
  295.                 if (ftp == null) ftp = this.getFtpClient();
  296.                 if (!ftp.Connected)
  297.                 {
  298.                     ftp.Connect();
  299.                     ftp.ChDir(ftpFolder);
  300.                 }
  301.                 strResult = ftp.GetFileInfo(ftpFileName);
  302.                 return strResult;
  303.             }
  304.             catch
  305.             {
  306.                 return "";
  307.             }
  308.         }
  309.  
  310.         /// <summary>
  311.         /// 得到文件列表
  312.         /// </summary>
  313.         /// <param name="ftpFolder">FTP目录</param>
  314.         /// <returns>FTP通配符号</returns>
  315.         public string[] GetFileList(string ftpFolder, string strMask)
  316.         {
  317.             string[] strResult;
  318.             try
  319.             {
  320.                 if (ftp == null) ftp = this.getFtpClient();
  321.                 if (!ftp.Connected)
  322.                 {
  323.                     ftp.Connect();
  324.                     ftp.ChDir(ftpFolder);
  325.                 }
  326.                 strResult = ftp.Dir(strMask);
  327.                 return strResult;
  328.             }
  329.             catch
  330.             {
  331.                 return null;
  332.             }
  333.         }
  334.  
  335.         /// <summary>
  336.         ///得到FTP传输对象
  337.         /// </summary>
  338.         public FTPClient getFtpClient()
  339.         {
  340.             FTPClient ft = new FTPClient();
  341.             ft.RemoteHost = this.Server;
  342.             ft.RemoteUser = this.User;
  343.             ft.RemotePass = this.Pass;
  344.             return ft;
  345.         }
  346.     }
  347. }
  348. //csharp/8616

回复 "C#自定义FTP操作封装类"

这儿你可以回复上面这条便签

captcha