42.网络通信-文件传输FTP-FTP关键类
42.1 知识点
NetworkCredential 类
- 命名空间:
System.Net
- NetworkCredential 通信凭证类
- 用途:在网络身份验证中存储用户名和密码信息,特别是在 FTP 文件传输场景下,用于提供访问 FTP 服务器所需的认证凭据。
- 通俗解释:该类允许你为 FTP 服务器提供登录凭证(用户名和密码),使得你的应用程序可以通过 FTP 协议与服务器建立安全连接并执行文件传输任务。
// 创建 NetworkCredential 实例
NetworkCredential networkCredential = new NetworkCredential("MrTao", "MrTao");
FtpWebRequest 类
- 命名空间:
System.Net
- FtpWebRequest FTP 客户端操作类
- 主要功能:用于执行上传、下载、删除 FTP 服务器上的文件等操作。
- 通俗解释:FtpWebRequest 类允许你构建与 FTP 服务器的连接,并发送 FTP 指令,实现诸如上传、下载及删除文件等功能。
FtpWebRequest 类的重要方法
FtpWebRequest.Create 创建新Ftp请求
//1.Create 创建新的WebRequest转成FtpWebRequest,用于进行Ftp相关操作 Uri构造时传入的是服务器IP地址和要操作的文件的路径
FtpWebRequest ftpWebRequest = FtpWebRequest.Create(new Uri("ftp://127.0.0.1/Test.txt")) as FtpWebRequest;
FtpWebRequest.Abort 终止Ftp传输
//2.Abort 如果正在进行文件传输,用此方法可以终止传输
ftpWebRequest.Abort();
FtpWebRequest.GetRequestStream 获取用于上传的流
//3.GetRequestStream 获取用于上传的流
Stream requestStream = ftpWebRequest.GetRequestStream();
FtpWebRequest.GetResponse 返回FTP服务器响应
//4.GetResponse 返回FTP服务器响应
FtpWebResponse ftpWebResponse = ftpWebRequest.GetResponse() as FtpWebResponse;
FtpWebRequest 类的重要成员
FtpWebRequest.Credentials 通信凭证
//1.Credentials 通信凭证,设置为NetworkCredential对象,就是为服务器设置一个账号密码
ftpWebRequest.Credentials = networkCredential;
FtpWebRequest.KeepAlive 当完成请求时是否关闭到FTP服务器的控制连接
//2.KeepAlive bool值,当完成请求时是否关闭到FTP服务器的控制连接(默认为true,不关闭)
ftpWebRequest.KeepAlive = false;
FtpWebRequest.Method 设置 FTP 请求的操作命令,如删除、下载、列出目录等
//3.Method 操作命令设置
// WebRequestMethods.Ftp类中的操作命令属性
// DeleteFile 删除文件
// DownloadFile 下载文件
// ListDirectory 获取文件简短列表
// ListDirectoryDetails 获取文件详细列表
// MakeDirectory 创建目录
// RemoveDirectory 删除目录
// UploadFile 上传文件
ftpWebRequest.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebRequest.UseBinary 指定是否采用二进制模式传输数据
//4.UseBinary 是否使用2进制传输
ftpWebRequest.UseBinary = true;
FtpWebRequest.RenameTo 重命名文件
//5.RenameTo 重命名文件
ftpWebRequest.RenameTo = "myTest.txt";
FtpWebResponse 类
- 命名空间:
System.Net
- 它是用于封装FTP服务器对请求的响应
- 它提供操作状态以及从服务器下载数据
- 我们可以通过FtpWebRequest对象中的GetResponse()方法获取
- 作用:FtpWebResponse类用于表示FTP服务器响应的信息,包括响应代码、响应消息和其他有关FTP操作的详细信息。
- 通俗解释:当你执行FTP操作后,FTP服务器会返回响应,这个类用于捕获和处理服务器的响应,以便你的应用程序了解操作是否成功,以及获取有关操作的额外信息,如文件大小、文件列表等。
//通过它来真正的从服务器获取内容
FtpWebResponse ftpWebResponse = ftpWebRequest.GetResponse() as FtpWebResponse;
FtpWebResponse 类的重要方法
FtpWebResponse.Close 释放所有资源
//1.Close:释放所有资源
ftpWebResponse.Close();
FtpWebResponse.GetResponseStream 返回从FTP服务器下载数据的流
//2.GetResponseStream:返回从FTP服务器下载数据的流
Stream responseStream = ftpWebResponse.GetResponseStream();
FtpWebResponse 类的重要成员
FtpWebResponse.ContentLength 接受到数据的长度
//1.ContentLength:接受到数据的长度
print(ftpWebResponse.ContentLength);
FtpWebResponse.ContentType 接受数据的类型
//2.ContentType:接受数据的类型
print(ftpWebResponse.ContentType);
FtpWebResponse.StatusCode FTP服务器下发的最新状态码
//3.StatusCode:FTP服务器下发的最新状态码
print(ftpWebResponse.StatusCode);
FtpWebResponse.StatusDescription FTP服务器下发的状态代码的文本
//4.StatusDescription:FTP服务器下发的状态代码的文本
print(ftpWebResponse.StatusDescription);
FtpWebResponse.BannerMessage 登录前建立连接时FTP服务器发送的消息
//5.BannerMessage:登录前建立连接时FTP服务器发送的消息
print(ftpWebResponse.BannerMessage);
FtpWebResponse.ExitMessage 获取 FTP 会话结束时服务器发送的消息
FtpWebResponse.LastModified 获取 FTP 服务器上文件的最后修改日期和时间
总结
通过 C# 提供的这三个类(NetworkCredential、FtpWebRequest 和 FtpWebResponse),我们可以实现客户端对 FTP 服务器的文件操作需求,例如上传、下载、删除文件等。
42.2 知识点代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Net;
using UnityEngine;
public class Lesson42_网络通信_文件传输FTP_关键类 : MonoBehaviour
{
void Start()
{
#region 知识点一 NetworkCredential类
//命名空间:System.Net
//NetworkCredential通信凭证类
//用于在Ftp文件传输时,设置账号密码
//作用:NetworkCredential类用于表示用户名和密码的凭据,以便访问需要身份验证的FTP服务器。
//通俗易懂的解释:这个类允许你提供FTP服务器的登录信息,包括用户名和密码,以便你的应用程序能够通过FTP协议与服务器建立连接并执行文件传输操作。
NetworkCredential networkCredential = new NetworkCredential("MrTao", "MrTao");
#endregion
#region 知识点二 FtpWebRequest类
//命名空间:System.Net
//Ftp文件传输协议客户端操作类
//主要用于:上传、下载、删除服务器上的文件
//作用:FtpWebRequest类用于创建和配置与FTP服务器的连接,并发送FTP命令,如上传、下载、删除文件等。
//通俗易懂的解释:这个类允许你建立到FTP服务器的连接,并指定你要执行的FTP操作,例如上传文件到服务器或从服务器下载文件。
//FtpWebRequest类重要方法
//1.Create 创建新的WebRequest转成FtpWebRequest,用于进行Ftp相关操作 Uri构造时传入的是服务器IP地址和要操作的文件的路径
FtpWebRequest ftpWebRequest = FtpWebRequest.Create(new Uri("ftp://127.0.0.1/Test.txt")) as FtpWebRequest;
//2.Abort 如果正在进行文件传输,用此方法可以终止传输
ftpWebRequest.Abort();
//3.GetRequestStream 获取用于上传的流
Stream requestStream = ftpWebRequest.GetRequestStream();
//4.GetResponse 返回FTP服务器响应
//FtpWebResponse ftpWebResponse = ftpWebRequest.GetResponse() as FtpWebResponse;
//FtpWebRequest类重要成员
//1.Credentials 通信凭证,设置为NetworkCredential对象,就是为服务器设置一个账号密码
ftpWebRequest.Credentials = networkCredential;
//2.KeepAlive bool值,当完成请求时是否关闭到FTP服务器的控制连接(默认为true,不关闭)
ftpWebRequest.KeepAlive = false;
//3.Method 操作命令设置
// WebRequestMethods.Ftp类中的操作命令属性
// DeleteFile 删除文件
// DownloadFile 下载文件
// ListDirectory 获取文件简短列表
// ListDirectoryDetails 获取文件详细列表
// MakeDirectory 创建目录
// RemoveDirectory 删除目录
// UploadFile 上传文件
ftpWebRequest.Method = WebRequestMethods.Ftp.DownloadFile;
//4.UseBinary 是否使用2进制传输
ftpWebRequest.UseBinary = true;
//5.RenameTo 重命名文件
//ftpWebRequest.RenameTo = "myTest.txt";
#endregion
#region 知识点三 FtpWebResponse类
//命名空间:System.Net
//它是用于封装FTP服务器对请求的响应
//它提供操作状态以及从服务器下载数据
//我们可以通过FtpWebRequest对象中的GetResponse()方法获取
//当使用完毕时,要使用Close释放
//作用:FtpWebResponse类用于表示FTP服务器响应的信息,包括响应代码、响应消息和其他有关FTP操作的详细信息。
//通俗易懂的解释:当你执行FTP操作后,FTP服务器会返回响应,这个类用于捕获和处理服务器的响应,以便你的应用程序了解操作是否成功,以及获取有关操作的额外信息,如文件大小、文件列表等。
//通过它来真正的从服务器获取内容
FtpWebResponse ftpWebResponse = ftpWebRequest.GetResponse() as FtpWebResponse;
//FtpWebResponse类重要方法:
//1.Close:释放所有资源
ftpWebResponse.Close();
//2.GetResponseStream:返回从FTP服务器下载数据的流
Stream responseStream = ftpWebResponse.GetResponseStream();
//FtpWebResponse类重要成员:
//1.ContentLength:接受到数据的长度
print(ftpWebResponse.ContentLength);
//2.ContentType:接受数据的类型
print(ftpWebResponse.ContentType);
//3.StatusCode:FTP服务器下发的最新状态码
print(ftpWebResponse.StatusCode);
//4.StatusDescription:FTP服务器下发的状态代码的文本
print(ftpWebResponse.StatusDescription);
//5.BannerMessage:登录前建立连接时FTP服务器发送的消息
print(ftpWebResponse.BannerMessage);
//6.ExitMessage:FTP会话结束时服务器发送的消息
//7.LastModified:FTP服务器上的文件的上次修改日期和时间
#endregion
#region 总结
//通过C#提供的这3个类
//我们便可以完成客户端向FTP服务器
//操作文件的需求,比如
//上传、下载、删除文件
#endregion
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com