3

我正在使用 SharpSSH 将 xml 文件传输到 unix 机器。这是写入文件的代码:

public override void WriteFile(string directoryName, string fileName, string responseText) {
    try {
        sshExec.RunCommand(@"echo """ + responseText + @""" > " + directoryName + "/" + fileName);
    } catch (Exception e) {
        log.Error("Failed to write file at " + directoryName + "/" + fileName);
        throw new Exception("Failed to write file to " + directoryName + "/" + fileName, e);
    }
}

问题是这些文件无法通过 XSD 验证。在传输前检查它们时,它们通过了验证。我怀疑问题在于它们以 ASCII 模式复制,特别是问题可能是行尾字符。我们之前在使用 WinSCP 时遇到过这个问题,直到我们将其配置为以二进制模式传输。
重要的是,即使接收应用程序在 unix 上运行,它确实需要 windows 字符集并且知道如何处理它。
SharpSSH 的开发者声称该实现只支持二进制模式。有没有人对这个库有任何经验并且可以阐明这一点?


编辑
似乎发送的响应没有任何 Crlf 字符,所以我现在完全被难住了。

4

0 回答 0