如何将StreamWriter转换为Stream?

时间:2017-03-23 11:46:37

标签: c# ssh.net

我正在尝试使用FileHelpers创建一个文件,然后在内存中使用SshNet写出该文件。

到目前为止,我有以下内容:

        var engine = new FileHelperEngine<MyObject>();
        MemoryStream ms = new MemoryStream();
        StreamWriter sw = new StreamWriter(ms);
        engine.WriteStream(sw, MyData);

        SshHelper ssh = new SshHelper("","","");
        ssh.WriteFile("MyPath", sw.BaseStream);

但是我的问题是WriteFile方法,因为它需要一个Stream参数,当我运行我的代码时,我得到一个空文件。

如何将StreamWriter(sw变量)转换为Stream参数?

编辑: 我试过了(不是在同一时间):

ms.Seek(0, SeekOrigin.Begin);
ms.Position = 0;

它仍然写入一个0字节的文件。

我通过使用FileHelper进行了进一步测试,以写入我的本地磁盘以验证我是否有数据。 (我这样做)

2 个答案:

答案 0 :(得分:0)

您的MemoryStream是流,StreamWriter只是写入它。尝试传入ms,而不是sw。

答案 1 :(得分:0)

WriteFile尝试将您的信息流的排名设置为0之前:ms.Seek( 0, SeekOrigin.Begin )