У меня есть программа Windows, использующая C#, которая работает с файлами журнала. Некоторые из этих файлов журналов находятся в gzipped (например, test.log.gz). У меня есть код, использующий SharpZipLib для распаковки этих файлов журналов, и он работает очень хорошо.Unzipping файл Gzip, который содержит папки в C#
public static void unZip(string gzipFilePath, string targetDir)
{
byte[] dataBuffer = new byte[4096];
using (System.IO.Stream fs = new FileStream(gzipFilePath, FileMode.Open, FileAccess.Read))
{
using (GZipInputStream gzipStream = new GZipInputStream(fs))
{
string fnOut = Path.Combine(targetDir, Path.GetFileNameWithoutExtension(gzipFilePath));
using (FileStream fsOut = File.Create(fnOut))
{
StreamUtils.Copy(gzipStream, fsOut, dataBuffer);
}
}
}
}
Из моих исследований, казалось бы, что GZIP файлы, как правило, один файл, так что всегда, например, test.htm.gz. Поэтому я хотел бы создать файл с именем Test.htm и поместить несжатую информацию в Test.htm, что происходит в этой части коды:
using (GZipInputStream gzipStream = new GZipInputStream(fs))
{
string fnOut = Path.Combine(targetDir, Path.GetFileNameWithoutExtension(gzipFilePath));
using (FileStream fsOut = File.Create(fnOut))
{
StreamUtils.Copy(gzipStream, fsOut, dataBuffer);
}
}
Это все хорошо, но проблема у меня есть Мне был предоставлен файл журнала, например, test.log.gz, в котором есть каталоги.
Когда я использую 7-Zip gui, чтобы разархивировать файл, для файла журнала мне нужно пять каталогов в глубине папок. Таким образом, после разархивирования с 7-Zip, она выводит:
folder1 -> folder2 -> folder3 -> folder4 -> folder5 -> test.log
Попытка использовать метод, предоставленный из SharpLib только дает мне небольшое подмножество данных файла в тесте .журнал.
Мне не удалось найти код или проблемы с файлами gzipped, содержащими папки, и из того, что я могу сказать, вы не должны этого делать. Он должен быть в .tar, а затем gzipped.
У любого есть представление о том, что я могу сделать с этим .gz-файлом?
Возможно, это не настоящий gzip-файл ... возможно, почтовый индекс с неправильным расширением? Посмотрите на первые байты в шестнадцатеричном редакторе –
Спасибо за подсказку, я попробую это. – MordecaiX7
Проверял первые несколько байтов в шестнадцатеричном редакторе против реального gzip-файла, и они выглядят одинаково. Вернемся к чертежной доске. – MordecaiX7