繁体   English   中英

如何检查文件下载 SSH.NET C#

[英]How to check file download SSH.NET C#

我在桌面应用程序中使用 SSH.NET 库。 如果连接断开,我如何安排检查上传到服务器的内容。 我用文件夹同步的方法做了一个小实验,当连接断开时,它在SFTP服务器上创建一个文件,当网络出现时,它开始下载。

public void SynchronizeDirectories(string sourceDirectory, string sourceFolder)
    {
        try
        {
            ConnectToHost();
            var searchPattern = "*";
            var upLoadedFiles =
                sftpClient.SynchronizeDirectories(sourceFolder, sourceDirectory, searchPattern);

            foreach (var file in upLoadedFiles)
            {
                LoggerManager.InfoMessage($"File on sftp has been updated {file.Name}");
            }
        }
        catch (Exception e)
        {
            LoggerManager.ErrorMessage("Error sftp server sync", e);
        }
        finally
        {
            Close();
        }
    }

也许有办法让文件在完全同步发生之前不被创建? 或 WinScp 样式,使用 .filepath 扩展名创建文件。

我不确定我是否了解您想对SftpClient.SynchronizeDirectories的行为进行哪些更改。 无论如何,该方法不提供任何定制。 但是你可以重用它的代码并按照你喜欢的方式修改它。 SSH.NET 是开源的。

或者使用WinSCP .NET 程序集及其Session.SynchronizeDirectories ,如果你喜欢 WinSCP 如何实现同步。

最后,我几天前创建了对SSH.NET的拉取请求 – 添加了文件部分 (.tmp) 扩展名 #791

如果文件尚未上传到服务器,我更改了SftpClient.cs InternalSynchronizeDirectories方法中的代码我添加了.tmp 扩展名。 然后扩展名在上传时更改为原始扩展名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM