NET平台超级好用的几款FTP客户端操作库--附代码

.NET平台超级好用的几款FTP客户端操作库--附代码

FluentFTP

FluentFTP是一个高性能的FTP和FTPS客户端库,专为.NET和.NET Standard环境设计,优化了速度。它提供了广泛的FTP命令支持、文件上传/下载、SSL/TLS连接、自动目录列表解析、文件哈希/校验和、文件权限/CHMOD、FTP代理支持、FXP支持、UTF-8支持、异步/等待(Async/Await)模式、PowerShell集成等功能,完全用C#编写。

安装命令:Install-Package FluentFTP

使用示例

go 复制代码
 ```csharp

// 创建FtpClient实例 using (FtpClient client = new FtpClient("00.112.111.11", "zhanghao", "mima111")) {

try { // 连接到FTP服务器 client.AutoConnect(); Console.WriteLine("Connected to FTP server.");

arduino 复制代码
    // 上传文件
    client.UploadFile("11.png", "11.png");
    Console.WriteLine("File uploaded successfully.");

    // 下载文件
    client.DownloadFile("123.png", "11.png");
    Console.WriteLine("File downloaded successfully.");

    // 列出目录内容
    FtpListItem[] files =  client.GetListing("/2016/03");
    foreach (var file in files)
    {
        Console.WriteLine(file.Name);
    }

    // 创建目录
     client.CreateDirectory("newDirectory");
    Console.WriteLine("Directory created successfully.");

    // 删除文件
    client.DeleteFile("remoteFilePath.txt");
    Console.WriteLine("File deleted successfully.");
}
catch (Exception ex)
{
    Console.WriteLine("Error: " + ex.Message);
}

}

csharp 复制代码
### 项目地址
https://github.com/robinrodricks/FluentFTP

## NetFTPLibrary

NetFTPLibrary 是一个功能丰富的FTP库,它支持FTPS(FTP with SSL)、自动重连与恢复、代理支持、ZLIB压缩、目录同步等功能。它同时支持同步和异步操作,适用于多种.NET框架,包括.NET Framework、.NET Core和.NET Standard。


 安装命令:`Install-Package NetFTPLibrary`
 ### 使用示例

```csharp
       // FTP服务器的地址、用户名和密码
        var server = "ftp.example.com";
        var username = "your_username";
        var password = "your_password";

        // 创建FtpClient实例
        using (var ftpClient = new FtpClient())
        {
            try
            {
                // 设置FTP服务器的连接信息
                ftpClient.Host = server;
                ftpClient.Credentials = new NetworkCredential(username, password);

                // 连接到FTP服务器
                ftpClient.Connect();

                // 上传文件
                ftpClient.UploadFile("localFilePath.txt", "remoteFilePath.txt");
                Console.WriteLine("File uploaded successfully.");

                // 下载文件
                ftpClient.DownloadFile("remoteFilePath.txt", "localFilePath.txt");
                Console.WriteLine("File downloaded successfully.");

                // 列出目录内容
                var directoryContents = ftpClient.GetListing("/");
                foreach (var item in directoryContents)
                {
                    Console.WriteLine(item.Name);
                }

                // 创建目录
                ftpClient.CreateDirectory("newDirectory");
                Console.WriteLine("Directory created successfully.");

                // 删除文件
                ftpClient.DeleteFile("remoteFilePath.txt");
                Console.WriteLine("File deleted successfully.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }
 

项目地址

www.nuget.org/packages/Ne...

System.Net.FtpClient

System.Net.FtpClient是 是一个简单易用的FTP库,它提供了基本的FTP功能,包括连接、上传、下载、列出目录内容、创建目录和删除文件等。。

使用示例

csharp 复制代码
// FTP服务器的地址、用户名和密码
        var hostname = "ftp.example.com";
        var username = "your_username";
        var password = "your_password";

        // 创建FtpWebRequest对象
        var request = (FtpWebRequest)WebRequest.Create(new Uri($"ftp://{hostname}/"));

        // 设置登录凭据
        request.Credentials = new NetworkCredential(username, password);

        try
        {
            // 连接到FTP服务器
            Console.WriteLine("Connecting to FTP server...");
            request.Method = WebRequestMethods.Ftp.ListDirectory;
            using (var response = (FtpWebResponse)request.GetResponse())
            {
                Console.WriteLine("Connected to FTP server.");

                // 列出目录内容
                Console.WriteLine("Directory contents:");
                using (var stream = response.GetResponseStream())
                using (var reader = new StreamReader(stream))
                {
                    string line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        Console.WriteLine(line);
                    }
                }
            }

            // 上传文件
            Console.WriteLine("Uploading file...");
            var uploadRequest = (FtpWebRequest)WebRequest.Create(new Uri($"ftp://{hostname}/path/to/remote/file.txt"));
            uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;
            uploadRequest.Credentials = new NetworkCredential(username, password);
            uploadRequest.UseBinary = true;

            using (var fileStream = File.OpenRead("path/to/local/file.txt"))
            using (var requestStream = uploadRequest.GetRequestStream())
            {
                fileStream.CopyTo(requestStream);
            }
            Console.WriteLine("File uploaded successfully.");

            // 下载文件
            Console.WriteLine("Downloading file...");
            var downloadRequest = (FtpWebRequest)WebRequest.Create(new Uri($"ftp://{hostname}/path/to/remote/file.txt"));
            downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile;
            downloadRequest.Credentials = new NetworkCredential(username, password);

            using (var response = (FtpWebResponse)downloadRequest.GetResponse())
            using (var fileStream = File.Create("path/to/local/downloaded/file.txt"))
            using (var stream = response.GetResponseStream())
            {
                stream.CopyTo(fileStream);
            }
            Console.WriteLine("File downloaded successfully.");

            // 创建目录
            Console.WriteLine("Creating directory...");
            var mkdirRequest = (FtpWebRequest)WebRequest.Create(new Uri($"ftp://{hostname}/newDirectory/"));
            mkdirRequest.Method = WebRequestMethods.Ftp.MakeDirectory;
            mkdirRequest.Credentials = new NetworkCredential(username, password);

            using (mkdirRequest.GetResponse())
            {
                Console.WriteLine("Directory created successfully.");
            }

            // 删除文件
            Console.WriteLine("Deleting file...");
            var deleteRequest = (FtpWebRequest)WebRequest.Create(new Uri($"ftp://{hostname}/path/to/remote/file.txt"));
            deleteRequest.Method = WebRequestMethods.Ftp.DeleteFile;
            deleteRequest.Credentials = new NetworkCredential(username, password);

            using (deleteRequest.GetResponse())
            {
                Console.WriteLine("File deleted successfully.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
 

项目地址

www.nuget.org/packages/Sy...

FTP_dotNET

FTP_dotNET是一个.NET FTP组件,支持FTP和FTPS, 包括自动目录列表解析,适用于Windows、Unix和Netware平台上的大多数流行FTP服务器。 支持的平台包括.NET Framework 3.5、4、4.5、4.6和4.7。

安装命令:Install-Package FTP_dotNET

使用示例

csharp 复制代码
        // FTP服务器的地址、用户名和密码
        var server = "ftp.example.com";
        var username = "your_username";
        var password = "your_password";

        // 创建FtpClient实例
        using (var ftpClient = new FtpClient(server, username, password))
        {
            try
            {
                // 连接到FTP服务器
                ftpClient.Connect();

                // 上传文件
                ftpClient.UploadFile("path/to/local/file.txt", "path/to/remote/file.txt");
                Console.WriteLine("File uploaded successfully.");

                // 下载文件
                ftpClient.DownloadFile("path/to/remote/file.txt", "path/to/local/file.txt");
                Console.WriteLine("File downloaded successfully.");

                // 列出目录内容
                var directoryContents = ftpClient.GetListing("/path/to/directory");
                Console.WriteLine("Directory contents:");
                foreach (var item in directoryContents)
                {
                    Console.WriteLine(item.Name);
                }

                // 创建目录
                ftpClient.CreateDirectory("newDirectory");
                Console.WriteLine("Directory created successfully.");

                // 删除文件
                ftpClient.DeleteFile("path/to/remote/file.txt");
                Console.WriteLine("File deleted successfully.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
            finally
            {
                // 断开连接
                ftpClient.Disconnect();
            }
        }
 

项目地址

www.nuget.org/packages/FT...

相关推荐
数据知道23 分钟前
Go基础:一文掌握Go语言泛型的使用
开发语言·后端·golang·go语言
楼田莉子1 小时前
python学习:爬虫+项目测试
后端·爬虫·python·学习
阿挥的编程日记1 小时前
基于SpringBoot的高校(学生综合)服务平台的设计与实现
java·spring boot·后端·spring·mybatis
@LetsTGBot搜索引擎机器人2 小时前
用 Python 打造一个 Telegram 二手交易商城机器人
开发语言·python·搜索引擎·机器人·.net·facebook·twitter
她说彩礼65万2 小时前
Asp.net core appsettings.json` 和 `appsettings.Development.json`文件区别
后端·json·asp.net
用户21411832636022 小时前
国产化算力实战:手把手教你在魔乐社区用华为昇腾 NPU 跑通模型推理
后端
IT_陈寒2 小时前
SpringBoot性能飞跃:5个关键优化让你的应用吞吐量提升300%
前端·人工智能·后端
M1A12 小时前
你的认知模式,决定了你的人生高度
后端
追逐时光者3 小时前
Everything替代工具,一款基于 .NET 开源免费、高效且用户友好文件搜索工具!
后端·.net
QX_hao3 小时前
【Go】--数据类型
开发语言·后端·golang