**概述:**通过FluentFTP库,轻松在.NET中实现FTP功能。支持判断、创建、删除文件夹,判断文件是否存在,实现上传、下载和删除文件。简便而强大的FTP操作,提升文件传输效率。
在.NET中,使用FluentFTP库可以方便地实现FTP的相关功能。以下是判断文件夹是否存在、文件夹的创建和删除、判断文件是否存在、文件的上传、下载和删除的基本操作。
FluentFTP是一个基于C#的开源FTP操作库,通过其简洁的API设计,使FTP操作更加易用。提供了丰富的功能,包括上传、下载、创建、删除文件和文件夹等。在.NET平台上,特别适用于处理FTP文件传输需求。
目录
1.安装
在Visual Studio中,NuGet包管理器安装FluentFTP。在包管理器控制台中执行以下命令:
bash
Install-Package FluentFTP
2.基本使用工具类
cs
public class FluentFTPUtils
{
#region 属性与构造函数
/// <summary>
/// IP地址
/// </summary>
public string IpAddr { get; set; }
/// <summary>
/// 相对路径
/// </summary>
public string RelatePath { get; set; }
/// <summary>
/// 端口号
/// </summary>
public int Port { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 密码
/// </summary>
public string Password { get; set; }
public FluentFTPUtils()
{
}
public FluentFTPUtils(string ipAddr, int port, string userName, string password, string relatePath)
{
this.IpAddr = ipAddr;
this.Port = port;
this.UserName = userName;
this.Password = password;
this.RelatePath = relatePath;
}
#endregion
#region 方法
public FtpListItem[] ListDir()
{
FtpListItem[] lists;
using (var ftpClient = new FtpClient(this.IpAddr, this.UserName, this.Password, this.Port))
{
ftpClient.Connect();
ftpClient.SetWorkingDirectory(this.RelatePath);
lists = ftpClient.GetListing();
}
return lists;
}
public void UpLoad(string dir, string file, out bool isOk)
{
isOk = false;
FileInfo fi = new FileInfo(file);
using (FileStream fs = fi.OpenRead())
{
//long length = fs.Length;
using (var ftpClient = new FtpClient(this.IpAddr, this.UserName, this.Password, this.Port))
{
ftpClient.Connect();
ftpClient.SetWorkingDirectory(this.RelatePath);
string remotePath = dir + "/" + Path.GetFileName(file);
var ftpRemodeExistsMode = file.EndsWith(".txt") ? FtpRemoteExists.Overwrite : FtpRemoteExists.Skip;
FtpStatus status = ftpClient.UploadStream(fs, remotePath, ftpRemodeExistsMode, true);
isOk = status == FtpStatus.Success;
}
}
}
/// <summary>
/// 上传多个文件
/// </summary>
/// <param name="files"></param>
/// <param name="isOk"></param>
public void UpLoad(string dir, string[] files, out bool isOk)
{
isOk = false;
if (CheckDirIsExists(dir))
{
foreach (var file in files)
{
UpLoad(dir, file, out isOk);
}
}
}
private bool CheckDirIsExists(string dir)
{
bool flag = false;
using (var ftpClient = new FtpClient(this.IpAddr, this.UserName, this.Password, this.Port))
{
ftpClient.Connect();
ftpClient.SetWorkingDirectory(this.RelatePath);
flag = ftpClient.DirectoryExists(dir);
if (!flag)
{
flag = ftpClient.CreateDirectory(dir);
}
}
return flag;
}
/// <summary>
/// 下载ftp
/// </summary>
/// <param name="localAddress"></param>
/// <param name="remoteAddress"></param>
/// <returns></returns>
public bool DownloadFile(string localAddress, string remoteAddress)
{
using (var ftpClient = new FtpClient(this.IpAddr, this.UserName, this.Password, this.Port))
{
ftpClient.SetWorkingDirectory("/");
ftpClient.Connect();
if (ftpClient.DownloadFile(localAddress, remoteAddress) == FtpStatus.Success)
{
return true;
}
return false;
}
}
#endregion
}
FluentFTP库实现FTP相关功能的基本操作。