Результатом сжатия являются двоичные данные - это , а не строка.Если вы попытаетесь прочитать его как строку, вы просто увидите мусор.Этого следовало ожидать - вы не должны воспринимать его как строку.
Следующая проблема заключается в том, что вы пытаетесь прочитать из compStream
дважды, не «перематывая» его сначала.Вы начинаете с конца потока, что означает, что нет данных для его распаковки.Если вы просто добавите:
compStream.Position = 0;
перед созданием экстрактора, вы можете обнаружить, что он работает немедленно.Вам может также необходимо перемотать decompStream
перед чтением с него.Таким образом, у вас будет такой код:
// Rewind to the start of the stream before decompressing
compStream.Position = 0;
SevenZipExtractor extractor = new SevenZip.SevenZipExtractor(compStream);
extractor.ExtractFile(0, decompStream);
// Rewind to the start of the decompressed stream before reading
decompStream.Position = 0;