我在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,但总是得到同样的例外。
有谁知道如何让这个工作?或者我如何检查我的服务器支持哪种算法?
感谢您的帮助!
答案 0 :(得分:0)
如何查看我的服务器支持哪种算法?
将WinSCP GUI连接到您的服务器,选择一个文件并转到Files > Properties,然后选择Checksum tab。看看,GUI提供了哪些算法:
使用对话框中显示的算法名称,如果显示全部则显示。如果未显示,则无法使用CalculateFileChecksum
。
请注意,您使用CalculateFileChecksum
中的算法名称(例如md5
或sha-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
用于目录,仅用于文件。