如何检查文件下载SSH.净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实现同步的方式,也可以使用WinSCP . net程序集及其Session.SynchronizeDirectories

最后我创建了SSH的pull request。NET几天前-新增filepart (.tmp)扩展名#791

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

相关内容

  • 没有找到相关文章

最新更新