使用WinSCP .NET程序集提取tarball C#

时间:2017-07-09 11:54:03

标签: c# tar scp winscp winscp-net

我在 C#中使用WinSCP .NET 程序集来传输tarball并将其解压缩。

我的代码有效,我设法复制了这些文件。但是当我尝试使用session.ExecuteCommand提取问题时,问题就出现了。没有任何事情发生。

尝试调试它我添加了:

session.ExecuteCommand("touch /<path>/myfile.txt");

之后:

session.ExecuteCommand("tar -xzf /<path>/mytarball.tar.gz");

并创建了文件,因此命令和权限不是问题,并使用:

result.Check();
string output = result.Output;

显示文件已解压缩。

我正在使用 SCP 协议,而不是 SFTP

有什么建议吗?

BR, 伊詹

1 个答案:

答案 0 :(得分:1)

看起来您假设该命令会将文件解压缩到/<path>

不会。它将它们提取到当前工作目录(可能是/home/user)。

使用-C(或--directory=)开关指定输出目录:

session.ExecuteCommand("tar -xzf /<path>/mytarball.tar.gz -C /<path>");