转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
.NET2.0实现FTP上传,下载文件(支持中文名)之一         ★★★★

.NET2.0实现FTP上传,下载文件(支持中文名)之一

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1213 更新时间:2009/6/9 2:35:04

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.IO;

namespace Kostech.Net
{
 /// <summary>
 /// FTP 的摘要说明。
 /// </summary>
 public class FTP
 {
  private string strRemoteHost;
  private int strRemotePort;
  private string strRemotePath;
  private string strRemoteUser;
  private string strRemotePass;
  private Boolean bConnected;

  #region 内部变量
  /// <summary>
  /// 服务器返回的应答信息(包含应答码)
  /// </summary>
  private string strMsg;
  /// <summary>
  /// 服务器返回的应答信息(包含应答码)
  /// </summary>
  private string strReply;
  /// <summary>
  /// 服务器返回的应答码
  /// </summary>
  private int iReplyCode;
  /// <summary>
  /// 进行控制连接的socket
  /// </summary>
  private Socket socketControl;
  /// <summary>
  /// 传输模式
  /// </summary>
  private TransferType trType;
  /// <summary>
  /// 传输模式:二进制类型、ASCII类型
  /// </summary>
  public enum TransferType
  {
   /// <summary>
   /// Binary
   /// </summary>
   Binary,
   /// <summary>
   /// ASCII
   /// </summary>
   ASCII
  };
  /// <summary>
  /// 接收和发送数据的缓冲区
  /// </summary>
  private static int BLOCK_SIZE = 512;
  Byte[] buffer = new Byte[ BLOCK_SIZE];
  /// <summary>
  /// 编码方式
  /// </summary>
  Encoding ASCII = Encoding.Default;
  #endregion

  #region 内部函数
  #region 构造函数
  /// <summary>
  /// 缺省构造函数
  /// </summary>
  public FTP()
  {
   strRemoteHost  = "";
   strRemotePath  = "";
   strRemoteUser  = "";
   strRemotePass  = "";
   strRemotePort  = 21;
   bConnected     = false;
  }

  /// <summary>
  /// 构造函数
  /// </summary>
  /// <param name="remoteHost"></param>
  /// <param name="remotePath"></param>
  /// <param name="remoteUser"></param>
  /// <param name="remotePass"></param>
  /// <param name="remotePort"></param>
  public FTP( string remoteHost, string remotePath, string remoteUser, string remotePass, int remotePort )
  {
   strRemoteHost  = remoteHost;
   strRemotePath  = remotePath;
   strRemoteUser  = remoteUser;
   strRemotePass  = remotePass;
   strRemotePort  = remotePort;
   Connect();
  }
  #endregion

  #region 登陆
  /// <summary>
  /// FTP服务器IP地址
  /// </summary>
  
  public string RemoteHost
  {
   get
   {
    return strRemoteHost;
   }
   set
   {
    strRemoteHost = value;
   }
  }
  /// <summary>
  /// FTP服务器端口
  /// </summary>
  public int RemotePort
  {
   get
   {
    return strRemotePort;
   }
   set
   {
    strRemotePort = value;
   }
  }
  /// <summary>
  /// 当前服务器目录
  /// </summary>
  public string RemotePath
  {
   get
   {
    return strRemotePath;
   }
   set
   {
    strRemotePath = value;
   }
  }
  /// <summary>
  /// 登录用户账号
  /// </summary>
  public string RemoteUser
  {
   set
   {
    strRemoteUser = value;
   }
  }
  /// <summary>
  /// 用户登录密码
  /// </summary>
  public string RemotePass
  {
   set
   {
    strRemotePass = value;
   }
  }

  /// <summary>
  /// 是否登录
  /// </summary>
  public bool Connected
  {
   get
   {
    return bConnected;
   }
  }
  #endregion

  #region 链接
  /// <summary>
  /// 建立连接 
  /// </summary>
  public void Connect()
  {
   socketControl = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
   IPEndPoint ep = new IPEndPoint(IPAddress.Parse(RemoteHost), strRemotePort);
   // 链接
   try
   {
    socketControl.Connect(ep);
   }
   catch(Exception)
   {
    throw new IOException("Couldn't connect to remote server");
   }

   // 获取应答码
   ReadReply();
   if(iReplyCode != 220)
   {
    DisConnect();
    throw new IOException(strReply.Substring(4));
   }
网络转载


[办公软件]PowerPoint2003设置对象的自定义动画  [办公软件]用PowerPoint2007做多种类型的交互练习题
[办公软件]解决PowerPoint 2007无法输入中文  [Sql Server]ASP.NET利用SQLDMO实现数据库的备份与恢复下篇
[Sql Server]ASP.NET利用SQLDMO实现数据库的备份与恢复上篇  [Sql Server]sql***delete***语句
[Web开发]net取得页面执行时间的代码  [Web开发]NET环境下实现SQL的登陆(使用代码)
[Web开发]ASP.NET地址重写、使用伪静态、页面回发处理  [Web开发]NET实现文件上传CS源代码
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台