我在 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, 伊詹
答案 0 :(得分:1)
看起来您假设该命令会将文件解压缩到/<path>
。
不会。它将它们提取到当前工作目录(可能是/home/user
)。
使用-C
(或--directory=
)开关指定输出目录:
session.ExecuteCommand("tar -xzf /<path>/mytarball.tar.gz -C /<path>");