zoukankan      html  css  js  c++  java
  • WinScp上传和下载

    不多说,贴代码,看不懂得可以留言。需要引入WinSCP

     1 public class WebWinScp
     2     {
     3         //远程上传路径
     4         private SessionOptions sessionOptions = null;
     5         private WinSCP.Session session = new WinSCP.Session();
     6         /// <summary>
     7         /// 
     8         /// </summary>
     9         /// <param name="HostName">FTP服务器</param>
    10         /// <param name="UserName">账号</param>
    11         /// <param name="Password">密码</param>
    12         /// <param name="SshPrivateKeyPath">Ssh私有密钥路径(以PPK结尾的文件)</param>
    13         public WebWinScp(string HostName, string UserName, string Password, string SshPrivateKeyPath)
    14         {
    15             sessionOptions = new SessionOptions
    16             {
    17                 Protocol = Protocol.Sftp,
    18                 HostName = HostName,
    19                 UserName = UserName,
    20                 Password = Password,
    21                 SshPrivateKeyPath = SshPrivateKeyPath,
    22                 GiveUpSecurityAndAcceptAnySshHostKey = true
    23             };
    24         }
    25         /// <summary>
    26         /// 下载FTP上的所有文件,并移除FTP上下载的问题
    27         /// </summary>
    28         /// <param name="localPath">本地下载路径</param>
    29         /// <param name="remoteDoPath">远程下载路径</param>
    30         public void Download(string localPath, string remoteDoPath)
    31         {
    32             try
    33             {
    34                 //开启连接
    35                 session.Open(sessionOptions);
    36                 TransferOptions transferOptions = new TransferOptions();
    37                 //传输模式  二进制
    38                 transferOptions.TransferMode = TransferMode.Binary;
    39                 //FTP上的目录列表
    40                 RemoteDirectoryInfo directoryInfo = session.ListDirectory(remoteDoPath);
    41                 RemoteFileInfoCollection ct = directoryInfo.Files;
    42                 TransferOperationResult transferResult;
    43                 foreach (RemoteFileInfo item in ct)
    44                 {
    45                     transferResult = session.GetFiles(remoteDoPath + item.Name, localPath, true, transferOptions);
    46                     if (transferResult != null)
    47                     {
    48                         transferResult.Check();
    49                     }
    50                 }
    51             }
    52             catch (Exception)
    53             {
    54                 throw;
    55             }
    56             finally
    57             {
    58                 if (session.Opened)
    59                 {
    60                     session.Close();
    61                 }
    62             }
    63         }
    64         /// <summary>
    65         /// 上传本地文件到FTP上,上传成功删除本机文件
    66         /// </summary>
    67         /// <param name="localPath">本地上传路径</param>
    68         /// <param name="remoteUpPath">远程上传路径</param>
    69         public void Upload(string localPath, string remoteUpPath)
    70         {
    71             try
    72             {
    73                 //开启连接
    74                 session.Open(sessionOptions);
    75                 TransferOptions transferOptions = new TransferOptions();
    76                 //传输模式  二进制
    77                 transferOptions.TransferMode = TransferMode.Binary;
    78                 TransferOperationResult transferResult = null;
    79                 transferResult = session.PutFiles(localPath, remoteUpPath, true, transferOptions);
    80                 if (transferResult != null)
    81                 {
    82                     transferResult.Check();
    83                 }
    84             }
    85             catch (Exception)
    86             {
    87                 throw;
    88             }
    89             finally
    90             {
    91                 if (session.Opened)
    92                 {
    93                     session.Close();
    94                 }
    95             }
    96         }
    97     }
  • 相关阅读:
    ActiveMQ的消息模式——队列模式(Queue)
    在foxmail上添加阿里邮箱
    Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 错误解决
    博客园首页新随笔联系管理订阅订阅随笔- 89 文章- 0 评论- 3 Centos7开放及查看端口
    tomcat设置为开机自启动
    Tensorflow2疑难问题---2、tensorflow2.3的GPU版本安装
    Tensorflow2疑难问题---1、课程介绍
    tensorflow2的gpu的版本安装(一些核心点)
    此环境变量太大, 此对话框允许将值设置为最长2047个字符(解决方法)
    windows下cuda的安装
  • 原文地址:https://www.cnblogs.com/lvphon/p/5609421.html
Copyright © 2011-2022 走看看