[英]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.