使用 WinSCP .NET 程序集提取压缩包 C#

Extracting tarball C# using WinSCP .NET Assembly

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

我的代码有效,我设法复制了文件。但是当我尝试使用 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, 伊丹

您似乎假设该命令会将文件提取到 /<path>

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

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

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