开发 .NET 下的 FTP 客户端组件

原创 2005年04月30日 16:39:00

最近有个项目需要支持 FTP 访问,但是 .NET 1.1 FCL 中没有提供相关的类,所以只好自己开发一个 FTP 客户端组件了。不过,我是一个懒惰型的程序员,当然不会一拿到需求就埋头苦干啦,呵~现在 Internet 如此发达,到处充满了有用的信息,到处充满了无限的商机,到处充满了可以利用的资源,到处充满了恐龙-_-! 男士们小心哦,嘻~

 

话归正题,我建议在自己开发一个 FTP 客户端组件或在使用一些开源的 FTP 客户端组件之前,先补充一下 FTP 协议相关的基础知识,这有会对你掌握 FTP 客户端组件的工作原理很有帮助。下面推荐几篇网上的文章,一般只要看完前三篇就行了:

 

l         浅析FTP的工作原理

l         文件传输协议(File Transfer Protocol, FTP

l         FTP命令详解

l         FTP协议的分析和扩展

 

       我在开发 FTP 客户端组件的过程中,参考了好几个开源项目,其实它们的工作原理一样的,只是看作者的设计如何,最终的效果主要表现在易用性、稳定性、可扩展性和兼容性上。

 

edtFTPnet

http://www.enterprisedt.com/products/edtftpnet/

 

edtFTPnet 是由 Enterprise Distributed Technologies 公司开发的一个 FTP 客户端组件,功能完善、文档齐全,并且项目使用了测试驱动开发(从源码看出)。这也是我选择它的主要原因。特点有:

l         支持主动模式(PORT)和被动模式(PASV

l         支持二进制传输被中断后续传

l         支持通过事件监视传输进度

edtFTPnet不支持 SOCKS 代理和 FTPS,这两个功能在该公司的 edtFTPnet/PRO 产品中支持。

 

FTP Component

 

http://www.codeproject.com/dotnet/dotnetftp.asp

FTP Component 是由 Alex Kwok 开发的,除了不支持主动(PORT)模式外,其他功能跟上面的 edtFTPnet 差不多,组件的代码组织还可以,看起来很好用。我没有使用它的原因就是:用它上传文件没有问题,下载却总是找不到文件,跟踪了一下大概是在 list 命令那里出毛病。基于时间紧迫和本人是网络编程白痴,所以没有时间去慢慢研究。知道原因的朋友记得告诉我啊。

 

FtpClient

http://www.sunmast.com/soft/ftpclient.zip

       FtpClient 组件是 Sunmast 兄弟很久以前(大学)写的,他说 bug 不少,我听了怕怕的。这个组件是第一个被我开刀的,大问题没有,就是不支持传输进度的事件跟踪,基于时间问题,所以就放弃了。Sunmast 说不打算更新该组件了,因为 .NET 2.0 已经支持 FTP 了。打开Visual Studio .NET 2005 的类库文档一看,在 System.Net 下果然多了 FtpWebRequest FtpWebResponse 两个类,还有一个 FtpStatusCode 枚举。当时有一股冲动想用 Reflector .NET 2.0 中的这三个类移植到 .NET 1.1 下,可是打开一看,一大堆看不懂,所以就没有“搞破坏”了。有兴趣的朋友可以试一试,记得搞定后把结果发给我就是啦。

 

.NET FTP Client

 

http://sourceforge.net/projects/dotnetftpclient/http://sourceforge.net/projects/dotnetftpclient/

这个是在 SourceForge 找到的,功能设计地比较简单,代码连注释都没有,干干净净地,狂晕。

 

其他的我没有用过,所以就不介绍了,最后一个是 FTP 服务器,不是 FTP 客户端。大家可以自己试一试,好用记得告诉我哦。

 

FTP.NET

 

http://sourceforge.net/projects/ftpnet/

Multi-threaded FTP Program written in C#

 

Ftp4net

 

http://sourceforge.net/projects/ftp4net/

Ftp4net is a C# class for communication with FTP Server, which conforms to the RFC 959 (FTP). It/'s an API that handles all FTP protocol commands. This class is designed for creating FTP Client software with .NET

 

Ftp Dot Net

http://sourceforge.net/projects/ftpcs/

 

Ftp Dot Net is a Ftp Server written in C#. It runs on Windows 2000/XP/2003 and Framework 1.1. It provide windows / Active Directory / NTFS authentication and permissions, Isolated ftp roots and Virtual Paths.

 

 

我要说的就这么多了,剩下的你们来写吧!

 

 

黎波

2005-4-30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.net下FTP的几篇文章(downmoon搜集)

 因为项目中用到,邀月稍微找了一下。1、Application for uploading modified Files to a FTP Serverhttp://www.codeproject.c...
  • downmoon
  • downmoon
  • 2008年01月29日 16:26
  • 10574

用.net实现ftp上传、下载

FTP简介 专门用于文件的上传、下载,效率更高 Windows下常用FTP服务器:Serve-U、IIS FTP、FileZilla Server(免费、开源)。学习用FileZill...
  • z123500
  • z123500
  • 2012年02月22日 23:03
  • 4286

Cocos2d-x中libcurl库的使用(5)代理介绍

代理:通过验证的用户,libcurl把用户输入的URL提交给代理服务器,使用代理服务器访问网络,而不是直接访问URL的远程资源。目前libcurl支持SOCKETS和HTTP代理,但是,并不支持SOC...

如何获取自己的SSL证书

原创文章,转载请注明出处:服务器非业余研究http://blog.csdn.net/erlib 作者Sunface如果仅为了测试,那使用下面方法即可:测试证书创建:1.创建证书的key$ openss...

使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持

本文转载:http://www.blogjava.net/wang123/archive/2009/03/10/258841.html 使用org.apache.commons.ne...

使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持

利用org.apache.commons.net.ftp包实现一个简单的ftp客户端实用类。主要实现一下功能 1.支持上传下载。支持断点续传 2.支持进度汇报 3.支持对于中文目录及中文文件创建...

使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持

利用org.apache.commons.net.ftp包实现一个简单的ftp客户端实用类。主要实现一下功能 1.支持上传下载。支持断点续传 2.支持进度汇报 3.支持对于中文目录及...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开发 .NET 下的 FTP 客户端组件
举报原因:
原因补充:

(最多只允许输入30个字)