代码之家  ›  专栏  ›  技术社区  ›  Alex Gordon

如何使用renci库在sftp中移动文件?

  •  0
  • Alex Gordon  · 技术社区  · 6 年前

        public static void MoveFiles(string source, string destination, LoginInfo loginInfo)
        {
            using (SftpClient sftp = new SftpClient(loginInfo.Uri, loginInfo.Port, loginInfo.User, loginInfo.Password))
            {
                foreach (SftpFile file in sftp.ListDirectory(source))
                {
                    file.MoveTo(destination + file.Name);
                }
            }
        }
    

    调试器只需跳出 foreach :

    enter image description here

    我做错了什么?

    using Renci.SshNet;
    using Renci.SshNet.Sftp;
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   Nkosi    6 年前

    您需要首先使用将客户端连接到服务器

    sftp.Connect();
    

    Source

    public static void MoveFiles(string source, string destination, LoginInfo loginInfo) {
        try {
            using (SftpClient sftp = new SftpClient(loginInfo.Uri, loginInfo.Port, loginInfo.User, loginInfo.Password)) {
                sftp.Connect();
                var files = sftp.ListDirectory(source)
                foreach (SftpFile file in files) {
                    file.MoveTo(destination + file.Name);
                }
            }
        } catch(Exception ex) {
            //...handle
        }
    }