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

时间:2017-04-06 15:56:12

标签: c# ftp checksum winscp winscp-net

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

但是在同步开始之前,我想检查远程和区域设置控制器是否完全不同。为此,我想使用WinSCP中的function perm(xs) { let ret = []; for (let i = 0; i < xs.length; i = i + 1) { let rest = perm(xs.slice(0, i).concat(xs.slice(i + 1))); if(!rest.length) { ret.push([xs[i]]) } else { for(let j = 0; j < rest.length; j = j + 1) { ret.push([xs[i]].concat(rest[j])) } } } return ret; } console.log(perm([1,2,3]).join("\n"));方法。 Here is an example for what I'm trying to do

这是代码,我称之为方法:

CalculateFileChecksum()

第一个字符串是用于计算校验和的算法,第二个字符串是远程路径。

如果我运行此代码,则会出现以下异常。

  

不支持操作。

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

  

支持(HASH,XSHA1,XSHA256,XSHA512,MD5,XMD5,XCRC)。

我已经尝试过HASH,MD5和XMD5,但总是得到同样的例外。

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  

如何查看我的服务器支持哪种算法?

将WinSCP GUI连接到您的服务器,选择一个文件并转到Files > Properties,然后选择Checksum tab。看看,GUI提供了哪些算法:

WinSCP checksum algorithms

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

请注意,您使用CalculateFileChecksum中的算法名称(例如md5sha-1),不使用FTP命令名称(例如XMD5,{{ 1}})。

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

  

但是this表说FTP应该支持以下

     
    

支持(HASH,XSHA1,XSHA256,XSHA512,MD5,XMD5,XCRC)。

  

该表说WinSCP支持这些FTP命令来计算校验和。这些命令实际上都没有标准化,FTP服务器也不需要支持任何命令。

请参阅FTP: copy, check integrity and delete

另请注意,您不能将XSHA1用于目录,仅用于文件。