c# - 将 FTP 上的本地和远程文件与 WinSCP lib 进行比较
问题描述
如何使用 .NET 在 FTP 服务器上通过 WinSCP 检查更新?
我在用着SynchronizationMode.Local
例如:
if(have_new_update){
MessageBox("U can update")
if(ok){
update();
}
}else{
return;
}
我的代码:
SessionOptions sessionOptions = new SessionOptions {
Protocol = Protocol.Ftp, HostName = ftp_url, UserName = username, Password = pass
};
using (Session session = new Session()) {
rtb_update_material.AppendText("\nConnected\n");
//Transferring
session.FileTransferred += FileTransferred;
session.FileTransferProgress += SessionProgressBar;
session.Open(sessionOptions);
SynchronizationResult synchronizationResult;
synchronizationResult = session.SynchronizeDirectories(SynchronizationMode.Local, @"MyPath\", "/", true);
synchronizationResult.Check();
if (synchronizationResult.IsSuccess)
rtb_update_material.AppendText("Done\n");
解决方案
用于Session.CompareDirectories
查找本地目录和远程目录之间的差异:
var diffs =
session.CompareDirectories(SynchronizationMode.Remote, localPath, remotePath, false);
if (diffs.Count > 0)
{
// there are differences
}
推荐阅读
- php - Laravel Eloquent 带分页的查询递归关系模型
- sql - Toad for Oracle 上的任务自动化
- blazor - IISExpress 中的两个 Blazor 集线器出现错误
- jquery - 如何在模态弹出按钮单击上运行 Jquery 功能
- android - 排毒测试不会在没有重新加载包的情况下在 react 本机 android 设备上运行
- google-apps-script - 我的代码不再起作用,但我没有更改它
- jquery - 通过 AJAX 调用在 div 中呈现 HTML
- html - 如何在图像滑块后放置文本
- python - 如何在 django 项目中同时验证用户和管理员
- python - 将 pd.ewma 从 pandas 0.17.0 迁移到 1.1.2