C# WinSCP:校验和计算(不支持此操作。)
我在我的C#WinForms应用程序中使用WinSCP.NET程序集,我想将远程目录与本地目录同步。这在WinSCP中非常有效 但是在同步开始之前,我想检查一下远程控制器和本地控制器是否完全不同。为此,我想使用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
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
,只能对文件使用