Я пытаюсь прочитать только первую строку заархивированного CSV-файла. Я использовал приведенный ниже код, но получил сообщение об ошибке «Магическое число в заголовке GZIP неверно». Очевидно, что это связано с тем, что GZIP и ZIP не являются идентичными форматами, но я, кажется, не получаю его работать даже при использовании библиотеки DotNetZipLib или SharpZip.
using (GZipStream gzipStream = new GZipStream(File.OpenRead(fileName), CompressionMode.Decompress))
{
using(StreamReader sr = new StreamReader(gzipStream))
{
//Matt try something like this as a hint / starting point
While(sr.Read())
{
row = sr.ReadLine();
}
}
}
Кто-нибудь из вас знает, как обрабатывать стандартные zip-файлы (не gzip) и передавать содержимое в объект StreamReader, чтобы я мог легко прочитать первую строку заархивированного текстового файла? Я не ищу решение, которое полностью распаковывает весь zip-файл перед открытием текстового файла. Я ищу аналогичное решение, как указано выше, но такое, которое может обрабатывать zip-файлы. Я также не хочу идти по гиковому маршруту через байтовые массивы и восстанавливать первую строку из массива, так как для этого потребуется знание точного содержимого первой строки (типы данных, разделители, ...).
Спасибо