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

How to move a file in sftp using renci library?

我正在尝试移动文件,但没有任何反应,也没有报告异常。

    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:

我做错了什么?

我正在使用以下依赖项:

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

您需要先使用

将客户端连接到服务器
sftp.Connect();

Source

并且您还应该将其包装在 try-catch 中,以防出现任何错误。

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
    }
}