【问题标题】:WinSCP: Checksum calculation (Operation not supported.)WinSCP:校验和计算(不支持操作。)
【发布时间】:2021-03-26 16:36:58
【问题描述】:

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

但是在同步开始之前,我想检查远程和区域设置是否完全不同。为此,我想使用 WinSCP 中的 CalculateFileChecksum() 方法。 Here is an example for what I'm trying to do.

这是我调用方法的代码:

var checksum =
    session.CalculateFileChecksum("md5", Properties.Settings.Default.ftpServerModDir);

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

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

不支持操作。

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

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

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

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

感谢您的帮助!

【问题讨论】:

    标签: c# ftp checksum winscp winscp-net


    【解决方案1】:

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

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

    使用对话框中显示的算法名称,如果有的话就是全部。如果没有显示,则不能使用Session.CalculateFileChecksum

    请注意,您在CalculateFileChecksum 中使用算法名称(如md5sha-1),不要使用FTP 命令名称(如XMD5XSHA1)。

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


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

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

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

    FTP: copy, check integrity and delete


    另外,请注意,您不能将Session.CalculateFileChecksum 用于目录,只能用于文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-01
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      相关资源
      最近更新 更多