我正在使用WinSCP .NET库。有时,当服务器不支持校验和功能时,session.CalculateFileChecksum()调用将引发异常。
我想通过首先检查FTP服务器是否支持该呼叫来避免这种情况。我想知道是否有一种方法可以使用.NET库API。
有什么想法吗?
注意:我已经知道我可以使用WinSCP GUI来做到这一点。需要一个API / C#解决方案。
TIA
答案 0 :(得分:0)
没有API。
您所能做的就是尝试,捕获异常并测试其消息是否为:
不支持该操作。
或者您可以启用会话日志记录并解析日志文件以获取对FEAT
命令的响应,查找HASH
,XSHA1
,XSHA256
,XSHA512
,XMD5
,MD5
或XCRC
(这就是WinSCP在内部所做的事情)。
> 2018-10-17 19:16:53.910 FEAT
< 2018-10-17 19:16:53.910 211-Features:
< 2018-10-17 19:16:53.910 MDTM
< 2018-10-17 19:16:53.910 REST STREAM
< 2018-10-17 19:16:53.910 SIZE
< 2018-10-17 19:16:53.910 MLST type*;size*;modify*;
< 2018-10-17 19:16:53.910 MLSD
< 2018-10-17 19:16:53.910 AUTH SSL
< 2018-10-17 19:16:53.910 AUTH TLS
< 2018-10-17 19:16:53.910 PROT
< 2018-10-17 19:16:53.910 PBSZ
< 2018-10-17 19:16:53.910 UTF8
< 2018-10-17 19:16:53.910 CLNT
< 2018-10-17 19:16:53.910 MFMT
< 2018-10-17 19:16:53.910 HASH SHA-1*;SHA-512;MD5
< 2018-10-17 19:16:53.910 EPSV
< 2018-10-17 19:16:53.910 EPRT
< 2018-10-17 19:16:53.910 211 End