Я пытаюсь читать файлы .gz с помощью двоичного считывателя, сначала разархивируя его с помощью gzipstream, а затем создавая новый двоичный считыватель с помощью gzipstream. однако, когда я пытаюсь использовать BaseStream.Position и BaseStream.Length BinaryReader (чтобы узнать, когда я нахожусь в конце моего файла), я получаю исключение NotSupportedException, проверка документа для этих полей в классе GZipStream показывает:
Length
Это свойство не поддерживается и всегда создает исключение NotSupportedException. (Переопределяет Stream.Length.)
Position
Это свойство не поддерживается и всегда создает исключение NotSupportedException. (Переопределяет Stream.Position.)
поэтому мой вопрос: как я могу узнать, когда я нахожусь в конце своего файла при чтении распакованного GZipStream с помощью BinaryReader? Благодарность
вот мой код:
Stream stream = new MemoryStream(textAsset.bytes);
GZipStream zippedStream = new GZipStream(stream, CompressionMode.Decompress);
using (BinaryReader reader = new BinaryReader(zippedStream))
while(reader.BaseStream.Position != reader.BaseStream.Length)
{
//do stuff with BinaryReader
}
вышеприведенные броски: NotSupportedException: операция не поддерживается. System.IO.Compression.DeflateStream.get_Position()
из-за вызова BaseStream.Position в while()