文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院工具软件FTP软件.net 2.0(c#)下简单的FTP应用程序
精品推荐
特别推荐
·FLASHFXP的FXP使用
·创建一个TFTP服务器
·知道FTP用户名和密码,如何修改密码
·详解:FTP登陆错误问题完全分析
·巧妙设定匿名FTP的安全
·让网络工作事半功倍 经典FTP使用命令大全
·FTP命令详解
·新手学堂:解析FTP协议的两种工作模式
·教你巧用我的电脑 解决IE7的FTP问题
·网络应用:FTP服务器匿名用户上传文件的配置
·FTP服务器的攻防实战
·外网用户如何访问内网FTP服务器
·ftp服务器——架设篇
·FTP PASV mode (被动模式) 全过程与设置说明
·教程/操作系统 Win2000中如何让FTP 服务器更安全
·轻松架设Windows 2003用户隔离FTP站点
·内网架设FTP服务器不完全攻略
·37个教育网的FTP
·为Serv-U提供在线修改密码功能
·FTP登录错误详解
热点TOP10
·文件传输协议(File Transfer Protocol, FTP)(1)
·Java FTP客户端库的选择
·详解:FTP登陆错误问题完全分析
·FlashFXP v3.4.1 beta 1187 汉化版免费下载
·巧妙设定匿名FTP的安全
·让网络工作事半功倍 经典FTP使用命令大全
·BT 电驴 电骡 FTP下载及找片技巧
·新手学堂:解析FTP协议的两种工作模式
·教你巧用我的电脑 解决IE7的FTP问题
·FTP服务器的攻防实战
·知道FTP用户名和密码,如何修改密码
·redhat linux 9.0 VSFTP配置大全
·网络应用:FTP服务器匿名用户上传文件的配置
·服务器应用:IIS建FTP服务器一(组图)
·squid与ftp代理
·Pure-FTPd [TLS] 服务器
·配置DHCP,ToD,TFTP服务在Cisco的cmts:一体化配置
·外网用户如何访问内网FTP服务器
·ftp服务器——架设篇
·文件传输协议(File Transfer Protocol, FTP)

.net 2.0(c#)下简单的FTP应用程序

日期:2007年1月23日 作者: 查看:[大字体 中字体 小字体]


作者:Neo Matrix
原文发布日期:2007.01.18

本文使用.net 2.0(c#)来实现一般的FTP功能

介绍
微软的.net framework 2.0相对于1.x来说增加了对FTP的支持。以前为了符合我的需求,我不等不使用第三方类库来实现FTP功能,但是为了可靠,还是使用.net framework的类比较好。我的这段代码没有做成可重复使用的类库的形式,但它却是比较容易理解的并能满足你的需求。它可以实现上传,下载,删除等任意功能。在这篇文章的后面将给大家出示.net 2.0下实现ftp的简单代码,使用的语言是c#。或许是因为这是.net新增的类,又或许是第三方类库已经能很好的实现你的需求,.net 2.0的这部分类库并没有得到足够的关注。


背景
作为我的工作的一部分,我已经使用了ftp模块,但是我只能在.net 1.1中去使用它,所以我不能深入的研究.net 2.0下ftp的实现。但是我相信,.ne 2.0下对ftp的支持是非常好的。


代码
不要忘记引入命名空间
using System.Net;
using System.IO;
下面的几个步骤包括了使用FtpWebRequest类实现ftp功能的一般过程

1、创建一个FtpWebRequest对象,指向ftp服务器的uri
2、设置ftp的执行方法(上传,下载等)
3、给FtpWebRequest对象设置属性(是否支持ssl,是否使用二进制传输等)
4、设置登录验证(用户名,密码)
5、执行请求
6、接收相应流(如果需要的话)
7、如果没有打开的流,则关闭ftp请求

开发任何ftp应用程序都需要一个相关的ftp服务器及它的配置信息。FtpWebRequest暴露了一些属性来设置这些信息。

接下来的代码示例了上传功能

首先设置一个uri地址,包括路径和文件名。这个uri被使用在FtpWebRequest实例中。

然后根据ftp请求设置FtpWebRequest对象的属性

其中一些重要的属性如下:
    ·Credentials - 指定登录ftp服务器的用户名和密码。
    ·KeepAlive - 指定连接是应该关闭还是在请求完成之后关闭,默认为true
    ·UseBinary - 指定文件传输的类型。有两种文件传输模式,一种是Binary,另一种是ASCII。两种方法在传输时,字节的第8位是不同的。ASCII使用第8位作为错误控制,而Binary的8位都是有意义的。所以当你使用ASCII传输时要小心一些。简单的说,如果能用记事本读和写的文件用ASCII传输就是安全的,而其他的则必须使用Binary模式。当然使用Binary模式发送ASCII文件也是非常好的。
    ·UsePassive - 指定使用主动模式还是被动模式。早先所有客户端都使用主动模式,而且工作的很好,而现在因为客户端防火墙的存在,将会关闭一些端口,这样主动模式将会失败。在这种情况下就要使用被动模式,但是一些端口也可能被服务器的防火墙封掉。不过因为ftp服务器需要它的ftp服务连接到一定数量的客户端,所以他们总是支持被动模式的。这就是我们为什么要使用被动模式的原意,为了确保数据可以正确的传输,使用被动模式要明显优于主动模式。(译者注:主动(PORT)模式建立数据传输通道是由服务器端发起的,服务器使用20端口连接客户端的某一个大于1024的端口;在被动(PASV)模式中,数据传输的通道的建立是由FTP客户端发起的,他使用一个大于1024的端口连接服务器的1024以上的某一个端口)
    ·ContentLength - 设置这个属性对于ftp服务器是有用的,但是客户端不使用它,因为FtpWebRequest忽略这个属性,所以在这种情况下,该属性是无效的。但是如果我们设置了这个属性,ftp服务器将会提前预知文件的大小(在upload时会有这种情况)
    ·Method - 指定当前请求是什么命令(upload,download,filelist等)。这个值定义在结构体WebRequestMethods.Ftp中。

private void Upload(string filename)
{
    FileInfo fileInf = new FileInfo(filename);
    string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
    FtpWebRequest reqFTP;

    // 根据uri创建FtpWebRequest对象
    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));

    // ftp用户名和密码
    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);

    // 默认为true,连接不会被关闭

[1] [2] [3] [4] [5] 下一页 




上一篇:解决网爬工具爬取页面信息出现乱码的问题

下一篇:在使用ASP.NET网站管理工具出现“遇到错误。请返回上一页并重试。”的解决办法!

.net 2.0(c#)下简单的FTP应用程序 相关文章:
·从零开始 无线网络终极应用宝典
·每周电脑应用技巧荟萃
·DIV CSS布局网页实例:简单表单form标准化实例
·Windows Vista Ultimate中文旗舰版下载+简单破解(支持迅雷HTTP & BT)
·Photoshop十余种漂亮照片边框简单制作技巧
·C#程序开发中的常用函数汇总
·PB8.0应用程序编译发布技术研究
·PB程序中在普通激光打印机上实现条码打印
·修改注册表,清除黑客程序
·添加或删除启动时自动运行的程序
.net 2.0(c#)下简单的FTP应用程序 相关软件:
·C语言程序设计
·Windows环境下32位汇编语言程序设计
·AUTOCAD 2002机械设计应用与实例
·注册表实例应用视频教程swf
·管理就这么简单
·C语言程序设计视频教程 CSF 教材:谭浩强《c程序设计》
·零起点教你如何破解软件和制作注册机 and 视频+程序
·AMD Processor Driver(AMD驱动程序)V1.3.2.6 WHQL
·中文版 AutoCAD2004 应用实例与技巧
·WIN98启动盘启动USB设备程序V1.0

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot