C# 使用 WinSCP 操作SFTP 记录

WinSCP 的下载地址: https://winscp.net/eng/downloads.php

下载使用的开发语言EXE.LIB  这里下载.net 下的

这里记录下载文件的时候下载单个文件的坑, 一个目录全部下载可以,但是下载单个文件的时候会出现 not is file 的错误。

这里是因为本地路径没有在最后加 “\\” 引起的。


 SessionOptions sessionOptions = new SessionOptions
                    {
                        Protocol = Protocol.Sftp,
                        PortNumber = global.PortNumber,
                        HostName = global.HostName,
                        UserName = user,
                        Password = password,
                        SshHostKeyFingerprint = global.SshHostKeyFingerprint
                    };


                    using (Session session = new Session())
                    {
                        // Connect
                        session.Open(sessionOptions);
                        TransferOperationResult transferResult;
                        TransferOptions transferOptions = new TransferOptions();
                        transferOptions.TransferMode = TransferMode.Binary;


                     
                        if (!global.Auto)
                        {
                            RemoteDirectoryInfo directory = session.ListDirectory(global.NASpath+"/"+global.today+"/");


                            foreach (RemoteFileInfo fileInfo in directory.Files)
                            {
                                if (fileInfo.Name.StartsWith("208"))
                                {
                                    //Download files   下载208开头的文件,留意第二个参数需要加上一个 "\\" 否则会出现错误无法下载
                                    transferResult = session.GetFiles(global.Serverpath + "/208*", global.directoryFullPath + "\\", false, transferOptions);
                                   //session.GetFileInfo(global.Serverpath + fileInfo.Name)
                                     
                                    if (transferOptions != null)
                                    {
                                        transferResult.Check();
                                    }
                                }


                                eftForm.AddItem2ListBox(fileInfo.Name);
                            }
                        }






                        if (!File.Exists(global.localPath))
                        {
                            Directory.CreateDirectory(global.localPath);
                            log.WrithLineWithTimeStamp(global.localPath + "                Created");
                        }


                        //Download files
                        // transferResult = session.GetFiles(global.Serverpath+"", global.directoryFullPath, false, transferOptions);


                        // Throw on any error
                        //transferResult.Check();


                        session.Abort();

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值