42.FTP关键类

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

×

喜欢就点赞,疼爱就打赏