使用Chilkat的Ftp2库可以方便地进行FTP操作。本文主要介绍.NET Core中使用Chilkat.Ftp2库操作FTP的代码,包括上传、下载、创建文件夹,删除文件等操作。

1、Chilkat.Ftp2的引用

1)下载文件直接引用

下载地址http://www.chilkatsoft.com/dotnet-core.asp

2)使用Nuget引用

在Nuget管理程序中,搜索'ChilkatDnCore' =》选中然后点击'安装'。

相关文档VS(Visual Studio)中Nuget的使用

3)Chilkat是收费软件

可以使用注册机或破解版

注册机https://download.csdn.net/download/dingbao123/10520651

注意:获取到注册码,把下面ftp.UnlockComponent("Anything for 30-day trial")中字符串,改成注册码就可以了。

2、使用Chilkat.Ftp2登陆ftp服务器

Chilkat.Ftp2 ftp = new Chilkat.Ftp2();
//任何字符串在前30天打开组件的可以试用,可以使用上面的注册机
bool success = ftp.UnlockComponent("Anything for 30-day trial");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
ftp.Hostname = "www.my-ftp-server.com";
ftp.Username = "mFtpLogin";
ftp.Password = "myFtpPassword";
ftp.AuthTls = true;
ftp.Passive = true;
//  Connect and login to the FTP server using TLS.
success = ftp.Connect();
if (success != true) {
    Debug.WriteLine(ftp.LastErrorText);
    return;
}

3、使用Chilkat.Ftp2上传文件到ftp服务器

//连接ftp服务器
Chilkat.Ftp2 ftp = new Chilkat.Ftp2();
//任何字符串在前30天打开组件的可以试用,可以使用上面的注册机
bool success = ftp.UnlockComponent("Anything for 30-day trial");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
ftp.Hostname = "192.168.142.27";
ftp.Username = "guest";
ftp.Password = "Aa123456";
//是否使用sftp
ftp.AuthTls = false;
ftp.Passive = true;
           success = ftp.Connect();
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
//切换到文件将要上载的远程目录
success = ftp.ChangeRemoteDir("1");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
//大约10M
int chunkSize = 10000000;
success = ftp.LargeFileUpload(@"E:\WebWeChatAPI.Net-master.rar", "WebWeChatAPI.Net-master.rar", chunkSize);
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
ftp.Disconnect();

4、下载ftp server的文件

Chilkat.Ftp2 ftp = new Chilkat.Ftp2();
//任何字符串在前30天打开组件的可以试用,可以使用上面的注册机
bool success = ftp.UnlockComponent("Anything for 30-day trial");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
ftp.Hostname = "192.168.142.27";
ftp.Username = "guest";
ftp.Password = "Aa123456";
//是否使用sftp
ftp.AuthTls = false;
ftp.Passive = true;
success = ftp.Connect();
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
//切换到文件将要上载的远程目录
success = ftp.ChangeRemoteDir("1");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
success = ftp.GetFile("2018.11.26-2018.12.2.xlsx", @"F:\1.xlsx");
if (ftp.LastMethodSuccess != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
ftp.Disconnect();

5、在ftp server上创建文件夹

//连接ftp服务器
Chilkat.Ftp2 ftp = new Chilkat.Ftp2();
//任何字符串在前30天打开组件的可以试用,可以使用上面的注册机
bool success = ftp.UnlockComponent("Anything for 30-day trial");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
ftp.Hostname = "192.168.142.27";
ftp.Username = "guest";
ftp.Password = "Aa123456";
//是否使用sftp
ftp.AuthTls = false;
ftp.Passive = true;
success = ftp.Connect();
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
//切换到文件将要上载的远程目录
success = ftp.ChangeRemoteDir("1");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
success = ftp.CreateRemoteDir("abc");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
ftp.Disconnect();

6、在ftp server上删除文件和文件夹

//连接ftp服务器
Chilkat.Ftp2 ftp = new Chilkat.Ftp2();
//任何字符串在前30天打开组件的可以试用,可以使用上面的注册机
bool success = ftp.UnlockComponent("Anything for 30-day trial");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
ftp.Hostname = "192.168.142.27";
ftp.Username = "guest";
ftp.Password = "Aa123456";
//是否使用sftp
ftp.AuthTls = false;
ftp.Passive = true;
success = ftp.Connect();
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
//切换到文件将要上载的远程目录
success = ftp.ChangeRemoteDir("1");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
//删除文件
success = ftp.DeleteRemoteFile("1.xlsx");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
//删除文件夹
success = ftp.RemoveRemoteDir("abc");
if (success != true)
{
    Console.WriteLine(ftp.LastErrorText);
    return;
}
ftp.Disconnect();

推荐文档