извлекать ISO с WinRar автоматически с помощью C # или партии

Я пытаюсь извлечь ISO в папку с тем же именем без .iso в конце.

У меня проблема с winrar, так как он не запустит распаковку, когда я начну с поиска, который начинается в папке с ISO.

UPDATED with answer code

<code>private void ExtractISO(string toExtract, string folderName)
    {
        // reads the ISO
        CDReader Reader = new CDReader(File.Open(toExtract, FileMode.Open), true);
        // passes the root directory the folder name and the folder to extract
        ExtractDirectory(Reader.Root, folderName /*+ Path.GetFileNameWithoutExtension(toExtract)*/ + "\\", "");
        // clears reader and frees memory
        Reader.Dispose();
    }

    private void ExtractDirectory(DiscDirectoryInfo Dinfo, string RootPath, string PathinISO)
    {
        if (!string.IsNullOrWhiteSpace(PathinISO))
        {
            PathinISO += "\\" + Dinfo.Name;
        }
        RootPath += "\\" + Dinfo.Name;
        AppendDirectory(RootPath);
        foreach (DiscDirectoryInfo dinfo in Dinfo.GetDirectories())
        {
            ExtractDirectory(dinfo, RootPath, PathinISO);
        }
        foreach (DiscFileInfo finfo in Dinfo.GetFiles())
        {
            using (Stream FileStr = finfo.OpenRead())
            {
                using (FileStream Fs = File.Create(RootPath + "\\" + finfo.Name)) // Here you can Set the BufferSize Also e.g. File.Create(RootPath + "\\" + finfo.Name, 4 * 1024)
                {
                    FileStr.CopyTo(Fs, 4 * 1024); // Buffer Size is 4 * 1024 but you can modify it in your code as per your need
                }
            }
        }
    }

    static void AppendDirectory(string path)
    {
        try
        {
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
        }
        catch (DirectoryNotFoundException Ex)
        {
            AppendDirectory(Path.GetDirectoryName(path));
        }
        catch (PathTooLongException Ex)
        {
            AppendDirectory(Path.GetDirectoryName(path));
        }
    }
</code>

Пользователь выбирает папку для извлечения (.ISO) для извлечения. Затем я использую его в Process.Start () в фоновом режиме. Это просто открывает программное обеспечение для монтирования и не извлекает ISO в нужное имя папки.

Заранее спасибо за помощь.

Или если бы кто-нибудь мог дать мне пакет для извлечения ISO вместо этого и вызова его из c #, передавая в Extract и имя папки, что также было бы полезно.

Спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос