C# WinSCP:校验和计算(不支持此操作。)

C# WinSCP:校验和计算(不支持此操作。),c#,ftp,checksum,winscp,winscp-net,C#,Ftp,Checksum,Winscp,Winscp Net,我在我的C#WinForms应用程序中使用WinSCP.NET程序集,我想将远程目录与本地目录同步。这在WinSCP中非常有效 但是在同步开始之前,我想检查一下远程控制器和本地控制器是否完全不同。为此,我想使用WinSCP中的CalculateFileChecksum()方法 下面是代码,我在其中调用该方法: var checksum = session.CalculateFileChecksum("md5", Properties.Settings.Default.ftpServerM

我在我的C#WinForms应用程序中使用WinSCP.NET程序集,我想将远程目录与本地目录同步。这在WinSCP中非常有效

但是在同步开始之前,我想检查一下远程控制器和本地控制器是否完全不同。为此,我想使用WinSCP中的
CalculateFileChecksum()
方法

下面是代码,我在其中调用该方法:

var checksum =
    session.CalculateFileChecksum("md5", Properties.Settings.Default.ftpServerModDir);
第一个字符串是计算校验和的算法,第二个字符串是远程路径

如果我运行这段代码,我会得到以下异常

不支持此操作

看起来,我的FTP服务器不支持MD5,但表中说FTP应该支持以下内容

支持(哈希、XSHA1、XSHA256、XSHA512、MD5、XMD5、XCRC)

我已经尝试过HASH、MD5和XMD5,但总是得到相同的异常

有人知道如何让它工作吗?或者我如何检查我的服务器支持哪种算法

谢谢你的帮助

如何检查服务器支持的算法

使用WinSCP GUI连接到服务器,选择一个文件并转到,选择。看看GUI提供了什么算法:

使用对话框中显示的算法名称,如果显示任何,则为全部。如果未显示,则无法使用

请注意,您在
CalculateFileChecksum
中使用算法名称(如
md5
sha-1
),而不使用FTP命令名称(如
XMD5
XSHA1

请注意,很可能您的服务器根本不支持校验和计算,因为MD5是目前使用最广泛的一种。因此,如果MD5不受支持,那么其他任何一个都不可能受支持


但是表中说FTP应该支持以下内容

支持(哈希、XSHA1、XSHA256、XSHA512、MD5、XMD5、XCRC)

表中显示WinSCP支持这些FTP命令来计算校验和。这些命令实际上都不是标准化的,FTP服务器也不需要支持这些命令


另外,请注意,不能对目录使用
Session.CalculateFileChecksum
,只能对文件使用