使用 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>");
我在 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>");