Я пытался преобразовать GZipStream в MemoryStream, а затем преобразовать его в байтовый массив без необходимости записывать какие-либо файлы на жесткий диск. Я пытался скопировать его в MemoryStream, но получаю эту ошибку: Необработанное исключение: System.ObjectDisposedException: Не удается получить доступ к закрытому потоку.
Я смотрел на некоторые другие решения, но я не смог успешно внедрить их в то, что я пытаюсь выполнить sh.
GZipStream decompressedStream = Decompress(new FileInfo(args[0]));
using (var finalStream = new MemoryStream())
{
decompressedStream.CopyTo(finalStream);
byte[] decompressedBytes = new byte[finalStream.Length];
}
РЕДАКТИРОВАТЬ: Кто-то хотел, чтобы я добавил код для Decompress (), так что вот оно
public static GZipStream Decompress(FileInfo fileToDecompress)
{
using (FileStream originalFileStream = fileToDecompress.OpenRead())
{
string currentFileName = fileToDecompress.FullName;
string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length) + " (decompressed)";
using (FileStream decompressedFileStream = File.Create(newFileName))
{
using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
{
return decompressionStream;
}
}
}
}