1.FTP
答:FTP(File Transfer Protocol, FTP),文件传输协议,属于网络协议组的应用层。
长连接:Client方与Server方先建立通讯连接,连接建立后不断开,然后再进行报文发送和接受,ftp即采用此种连接方式。
短连接:Client方与Server方每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。如网页上采取这种连接方式。
2.使用FetWebRequest类和对应的FtpWebResponse类可以实现与FTP服务器通信。HttpWebRequest/Response可以用于上传/下载简单的文件,而FtpWebRequest提供了浏览目录、创建目录、删除文件等更多的功能。 FtpWebRequest的附加功能
成 员 |
描 述 |
Abort |
在执行异步操作时才能使用。这个命令会终止当前操作 |
Binary |
布尔值。用于判断数据是作为二进制数据还是作为 文本进行传输。如果传输的是二进制文件, 就设置为True,否则设置为False |
Method |
对于FtpWebRequest,这个方法非常重要,它定义了 要执行的操作。WebRequestMethod.Ftp定义了可以使用的值 |
Passive |
布尔值。用于判断客户端与服务器如何通信。如果设 置为True,服务器就不会启动与客户端的通信,而是 等待客户端启动通信过程。如果客户机上的防火墙不 允许服务器建立连接,就应当使用这个模式 |
3.WebRequestMethods.Ftp
答:FtpWebRequest发出的实际请求是由Method属性指定的,这个字符串属性可以设置成为FTP服务器认可的值,但通常使用WebRequestMethods.Ftp结构中的值:
字 段 |
描 述 |
AppendFile |
给一个现存的文件添加内容 |
DeleteFile |
从服务器上删除文件(但必须具有权限) |
DownloadFile |
从FTP服务器上获取文件 |
GetDateTimeStamp |
获得文件最近修改的日期和时间 |
GetFileSize |
获得FTP服务器上文件的大小 |
ListDirectory |
获得FTP服务器上某个目录内的文件名和目录名。 返回的数据是一个文件列表,每个文件放在一行上 (用CRLF字符换行)。这个方法不能判断返回的条目是目录还是文件 |
ListDirectoryDetails |
获得FTP服务器上某个目录内文件和目录的信息。 这个方法返回每个元素的具体信息,例如属性、权限、最后修改时间和大小等。 与ListDirectory方法一样,每个文件(或目录)的信息放在一行上 |
MakeDirectory |
在服务器上创建一个目录 |
PrintWorkingDirectory |
获得FTP服务器上的当前路径 |
RemoveDirectory |
从服务器中删除一个目录(必须具有合适的权限) |
UploadFile |
上传一个文件到FTP服务器 |
UploadFileWithUniqueName |
类似于UploadFile,但这个方法能确保新的文件使 用唯一的名称。在允许用户上传文件时,这个功能 很重要。如果不希望发生命名冲突或不介意文件名 (例如只处理文件内容而不保存文件内容), 就应使用这个方法 |
4. FtpWebRequest 和WebRequest存在与命名空间System.NET中,使用FTP WebRequest类实现FTP功能的一般过程:
1、创建一个FTP WebRequest对象,指向FTP服务器的URI
ftpWebRequest = (FtpWebRequest)WebRequest.Create(rootUrl);
2、设置FTP的执行方法
ftpWebRequest.Method = WebRequestMethods.Ftp.XXXXX
3、给FTP WebRequest对象设置属性
ftpWebRequest.UseBinary
4、设置登录验证
ftpWebRequest.Credentials= new NetworkCredential(userName, password);
5、执行请求
ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();
6、接受相应流
reader = new StreamReader(ftpWebResponse.GetResponseStream(), Encoding.UTF8);
7、如果没有打开的流,则关闭FTP请求