C# 上传文件至SFTP

1、安装SSH.NET类库程序包

Install-Package SSH.NET -Version 2020.0.0-beta1

更多版本:https://www.nuget.org/packages/SSH.NET/

2、代码:

using System;
using System.IO;
using System.Threading.Tasks;
using System.Collections.Generic;

using Renci.SshNet;
using Renci.SshNet.Sftp;

namespace Com.BaiGe.CallCode
{
    public class FtpHelper
    {
        /**
        	参数一:directory指的是要上传到sftp的具体目录/文件夹中
        	参数二:pdfFile指的是要上传的文件路径
		*/
        public int Upload(string directory, string pdfFile)
        {
            const int port = 22;
            const string host = "xxx";
            const string username = "xxx";
            const string password = "xxx";

            try
            {
                using (SftpClient client = new SftpClient(host, port, username, password))
                {
                    client.Connect();
                    client.ChangeDirectory(directory);
                    int beforeCount = GetFileCount(client, directory);

                    using (FileStream fileStream = new FileStream(pdfFile, FileMode.Open))
                    {
                        client.BufferSize = 4 * 1024;
                        client.UploadFile(fileStream, Path.GetFileName(pdfFile));

                        int afterCount = GetFileCount(client, directory);
                        return afterCount - beforeCount;
                    }
                }
            } catch (Exception)
            {
                return -1;
            }
        }
        private int GetFileCount(SftpClient client, string directory)
        {
            List<SftpFile> files = client.ListDirectory(directory) as List<SftpFile>;
            return files.Count;
        }
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值