Использую Win rar, установленный в ОС Win 10 для распаковки архивов.
Пытаюсь извлечь из архива только выбранные файлы, чтобы не извлекать все содержимое.
Код работает корректно если искомый файл находится в корневом каталоге архива. Мне нужно извлекать файлы с одинаковым именем находящихся в разных подкаталогах архива с сохранением структуры папок. В этом случае код выдает ошибку. Как записать код, чтобы извлекать заданные файлы из подкаталогов архива ?
string file_name = "test.txt";
string password = "123";
string archivePath = "in\";
string outputPath = "out\";
string args = $"x -ibck -y -o+ {(string.IsNullOrEmpty(password) ? "" : $"-p\"{password}\"")} \"{archivePath}\" -n\"{file_name}\" \"{outputPath}\\\"";
using (Process process = new Process())
{
process.StartInfo = new ProcessStartInfo
{
FileName = winRarPath,
Arguments = args,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardError = true
};
process.Start();
process.WaitForExit();
if (process.ExitCode != 0)
throw new Exception("Ошибка при распаковке архива.");
}
}