我在C#中使用WinSCP.NETAssembly来传输压缩包并将其解压缩。
我的代码有效,我设法复制了文件。但是当我尝试使用session.ExecuteCommand
提取它们时,我的问题就开始了。什么也没发生。
尝试调试它,我添加了:
session.ExecuteCommand("touch /<path>/myfile.txt");
紧接着:
session.ExecuteCommand("tar -xzf /<path>/mytarball.tar.gz");
并且文件已创建,因此命令和权限不是问题,并且使用:
result.Check();
string output = result.Output;
显示文件已提取。
我使用的是SCP协议而不是SFTP
有什么建议吗?
溴, 伊丹
看起来您假设该命令会将文件提取到/<path>
。
不会的。它将它们提取到当前工作目录(可能是/home/user
(。
使用-C
(或--directory=
(开关指定输出目录:
session.ExecuteCommand("tar -xzf /<path>/mytarball.tar.gz -C /<path>");