GZIP-Dekomprimierung C # OutOfMemory

Ich habe viele große gzip-Dateien (ungefähr 10 MB - 200 MB), die ich von ftp heruntergeladen habe, um sie zu dekomprimieren.

Also habe ich versucht zu googeln und eine Lösung für die gzip-Dekompression zu finden.

<code>    static byte[] Decompress(byte[] gzip)
    {
        using (GZipStream stream = new GZipStream(new MemoryStream(gzip), CompressionMode.Decompress))
        {
            const int size = 4096;
            byte[] buffer = new byte[size];
            using (MemoryStream memory = new MemoryStream())
            {
                int count = 0;
                do
                {
                    count = stream.Read(buffer, 0, size);
                    if (count > 0)
                    {
                        memory.Write(buffer, 0, count);
                    }
                }
                while (count > 0);
                return memory.ToArray();
            }
        }
    }
</code>

Es funktioniert gut für alle Dateien unter 50 MB, aber sobald ich mehr als 50 MB eingegeben habe, habe ich System aus dem Speicher Ausnahme. Die letzte Position und die Länge des Speichers vor der Ausnahme ist 134217728. Ich glaube nicht, dass sie in Beziehung zu meinem physischen Speicher steht. Ich verstehe, dass ich kein Objekt mit mehr als 2 GB haben kann, da ich 32-Bit verwende.

Ich muss die Daten auch verarbeiten, nachdem ich die Dateien dekomprimiert habe. Ich bin nicht sicher, ob Memory Stream der beste Ansatz ist, aber ich mag es nicht wirklich, in eine Datei zu schreiben und die Dateien dann erneut zu lesen.

Meine Fragen

Warum habe ich System.OutMemoryException erhalten?Was ist die bestmögliche Lösung, um gzip-Dateien zu dekomprimieren und anschließend Text zu verarbeiten?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage