- 准备工作
在使用C#利用SFTP实现上传和下载之前,首先需要安装SSH.NET NuGet包和.NET Framwork 4.5或以上版本。
打开Visual Studio,创建一个新的控制台应用程序,并打开包管理控制台,输入以下命令安装SSH.NET:
Install-Package SSH.NET
- 实现SFTP上传
SFTP上传是通过SSH协议在服务器上进行文件传输的过程,以下是一段实现SFTP上传的代码。在这个示例中,上传文件的本地路径为“localFilePath”,服务器的主机名为“hostname”,登录用户名为“username”,登录密码为“password”,SFTP的端口号为22,并且上传后的文件名为“remoteFileName”。
using Renci.SshNet;
public static void SftpUpload(string localFilePath, string hostname, string username, string password, int port, string remoteFileName)
{
using (var client = new SftpClient(hostname, port, username, password))
{
client.Connect();
using (var fileStream = new FileStream(localFilePath, FileMode.Open))
{
client.UploadFile(fileStream, remoteFileName);
}
client.Disconnect();
}
}
- 实现SFTP下载
SFTP下载与上传类似,同样是使用SSH协议在服务器上进行文件传输的过程。以下是一段实现SFTP下载的代码。在这个示例中,下载文件的服务器路径为“remoteFilePath”,服务器的主机名为“hostname”,登录用户名为“username”,登录密码为“password”,SFTP的端口号为22,并且下载后的文件名为“localFileName”。
using Renci.SshNet;
public static void SftpDownload(string remoteFilePath, string hostname, string username, string password, int port, string localFileName)
{
using (var client = new SftpClient(hostname, port, username, password))
{
client.Connect();
using (var fileStream = new FileStream(localFileName, FileMode.Create))
{
client.DownloadFile(remoteFilePath, fileStream);
}
client.Disconnect();
}
}
- 示例说明
以下是两个示例说明,分别展示了如何实现SFTP上传和SFTP下载。
示例1:SFTP上传
首先,假设我们有一个名为“test.txt”的文件,路径为“D:\test\test.txt”,现在我们想要将其上传到服务器“192.168.1.1”的“/home/user/documents/”文件夹中。
调用“SftpUpload”方法,并将本地文件路径、服务器主机名、登录用户名、登录密码、SFTP端口号和远程文件名作为方法参数传递。
string localFilePath = @"D:\test\test.txt";
string hostname = "192.168.1.1";
string username = "user";
string password = "password";
int port = 22;
string remoteFileName = "test.txt";
SftpUpload(localFilePath, hostname, username, password, port, remoteFileName);
示例2:SFTP下载
假设我们要从服务器“192.168.1.1”的“/home/user/documents/”文件夹中下载一个名为“documents.txt”的文件,并保存到本地路径“D:\download\documents.txt”。
调用“SftpDownload”方法,并将服务器文件路径、服务器主机名、登录用户名、登录密码、SFTP端口号和本地文件名作为方法参数传递。
string remoteFilePath = "/home/user/documents/documents.txt";
string hostname = "192.168.1.1";
string username = "user";
string password = "password";
int port = 22;
string localFileName = @"D:\download\documents.txt";
SftpDownload(remoteFilePath, hostname, username, password, port, localFileName);
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#利用SFTP实现上传下载 - Python技术站