• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#实现自定义FTP操作封装类实例

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

作者:lele 字体:[增加 减小] 来源:互联网 时间:2017-05-28

lele 通过本文主要向大家介绍了c#ftp上传,c#ftp客户端源代码,c#上传文件到ftp,c#ftp,c#ftp下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了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



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#开发教程之ftp操作方法整理
  • C#实现自定义FTP操作封装类实例
  • C#操作FTP出现500错误解决办法
  • c#操作ftp类分享
  • C#版ftp方法实现类的代码

相关文章

  • 2017-05-28C#使用Aspose.Cells控件读取Excel
  • 2017-05-28C#关于反射加载的问题
  • 2017-05-28用C#获取硬盘序列号,CPU序列号,网卡MAC地址的源码
  • 2017-05-28C#实现简单的JSON序列化功能代码实例
  • 2017-05-28C#简单的加密类实例
  • 2017-05-28C#数据结构与算法揭秘三 链表
  • 2017-05-28mvc C# JavaScript LigerUI oracle实现用户的注册、登陆验证、登陆
  • 2017-05-28C/C++ 传递动态内存的深入理解
  • 2017-05-28c#创建windows服务入门教程实例
  • 2017-05-28C#判断日期是否到期的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#中方法的详细介绍
    • 遍历Hashtable 的几种方法
    • VS2015 C#生成dll文件的方法(32/64)
    • winform树形菜单无限级分类实例
    • C#中判断字符串是全角还是半角的实现代码
    • C#通过XML节点属性/属性值读取写入XML操作代码实例
    • C#中异步Socket通信编程代码实例
    • c#递归遍历文件夹示例
    • 解析如何正确使用SqlConnection的实现方法
    • C#进制之间的相互转换详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有