Распаковка архива .tar.bz2 из командной строки - C#
Формулировка задачи:
Доброго времени суток,
Появилась следующая задача.
Сервер под unix системой пишет файлы логов. Когда файл достигает размера 1 Gb, система запаковывает его в архив формата timestamp.tar.bz2.
Моя задача по дате найти нужный архив, распаковать его, и парсить в поисках необходимой информации.
Проблема возникла до смешного банальная, не могу распаковать этот архив под виндой.
Пробовал zlibnet, ZipStorer, #ziplib. Такой формат они распаковать не могут. Или я не правильно пользуюсь?
Пробовал через Rar.exe, от WinRAR. При попытке распаковать из командной строки выдает сообщение "is not RAR archive".
Пробовал через 7zip, вот так:
7zip ведет себя не совсем адекватно. Иногда распаковка проходит успешно, а бывает что выдает: "Error: неопознанная ошибка". По какой причине эта ошибка появляется, я так и не понял. Возможно из-за размера файла?
Если кто знает, подскажите в чем дело. Или может есть другой распаковщик с поддержкой командной строки? Мне нужно только разархивирование.
Process process = new Process(); process.StartInfo.Arguments = " e -y \"" + pathSrc + "\" *.* -o\"" + pathDest + "\""; process.StartInfo.FileName = "7z.exe"; process.Start(); process.WaitForExit();
Решение задачи: «Распаковка архива .tar.bz2 из командной строки»
textual
Листинг программы
private void unZip(string pathSrc, string pathDest) { try { using (var fs = File.OpenRead(pathSrc)) { using (var decompressor = new Ionic.BZip2.BZip2InputStream(fs)) { using (var output = File.Create(pathDest)) { byte[] buffer = new byte[2048]; int n; while ((n = decompressor.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, n); } } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д