Как разархивировать rar с помощью языка c#

Как разархивировать rar файл?

Из этой небольшой заметки вы узнаете, как разархивировать rar файл с помощью языка c#.

И так, предположим, что у нас есть архив, например c:\backup\20130512.rar, в котором содержится папка documents с тремя файлами: 1.txt, 2.txt и 3.txt.

архив winrar

И в качестве задачи нам требуется разархивировать данный архив программным путём, что для этого нужно сделать?

1. Для начала нужно проверить, чтобы на вашем компьютере была установлена программа (rar.exe), которая обычно расположена в папке c:\Program Files\WinRAR. Если по указано пути её нет, то тогда воспользуйтесь поиском.

2. Чтобы разархивировать файл rar необходимо запустить выше указанную программу, передав её несколько параметров: команду, полный путь к файлу с архивом и если требуется, то так же указать путь, куда нужно распаковать файлы.

3. Извлечение файлов из архива выполняется с помощью команды «e», например:

rar e c:\backup130512.rar c:\backup

результат

разархивированные файлы

Если же вам нужно извлечь не только файлы, но и папку, в которой они хранятся, то в таком случае вместо команды (e) указываем команду (x) и получаем следующий результат:

извлеченные файлы

4. Осталось выполнить последний шаг, в котором мы, с помощью класса ProcessStartInfo, запустим программу (rar.exe) и выполним команду.

using System.Diagnostics; //добавить
try
{
ProcessStartInfo ps = new ProcessStartInfo();
//Имя запускаемого приложения
ps.FileName = @"C:\Program Files\WinRAR\RAR.exe";
//команда
ps.Arguments = @"e c:\backup130512.rar c:\backup";
Process.Start(ps);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}

На этом всё, если есть какие-то вопросы, то оставляйте их в комментариях.

Читайте также:

2 комментария

  1. Немного можно дополнить.

    Process procCommand = Process.Start(ps);
    procCommand.WaitForExit();

    Чтобы дать дождаться завершения процесса.

  2. Почему может возникать ошибка «Архивы не найдены». Вручную архив распаковывается без проблем

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *