Извлечение tarball C # с помощью сборки WinSCP .NET

Я использую сборку WinSCP .NET на C # для передачи архива и его распаковки.

Мой код работает, и мне удалось скопировать файлы. Но моя проблема начинается, когда я пытаюсь извлечь их с помощью session.ExecuteCommand. Ничего не произошло.

Пытаясь отладить это, я добавил:

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

сразу после:

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

и файл создается, поэтому проблема не в команде и разрешении, а с использованием:

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

Показывает, что файлы извлечены.

Я использую протокол SCP, а не SFTP

Есть предложения?

Бр, Идан


person idan357    schedule 09.07.2017    source источник
comment
Можете ли вы показать нам полный фрагмент кода загрузки / извлечения?   -  person mr.freeze    schedule 09.07.2017


Ответы (1)


Похоже, вы предполагаете, что команда извлечет файлы в /<path>.

Не будет. Он извлекает их в текущий рабочий каталог (вероятно, /home/user).

Используйте переключатель -C (или --directory=), чтобы указать выходной каталог:

session.ExecuteCommand("tar -xzf /<path>/mytarball.tar.gz -C /<path>");
person Martin Prikryl    schedule 10.07.2017
comment
Спасибо ! использовал флаг -C - person idan357; 10.07.2017