Gibt es eine Möglichkeit, eine DynaZip Max-Datei mit einer anderen Bibliothek zu dekomprimieren? F. E. DotNetZip

Ich habe eine Datenbank, in der wir mit DynaZip Max Secure komprimierte PDF-Dateien mit folgendem Code gespeichert haben:

MemoryStream msIN = new System.IO.MemoryStream();   //Input MemoryStream
MemoryStream msZip = new System.IO.MemoryStream();  //Compressed MemoryStream
BinaryReader objBinaryReader;
BinaryWriter objBinaryWriter;


public MemoryStream CompressStream(byte[] vbuf)
{
    System.IO.BinaryWriter bw = new System.IO.BinaryWriter(msIN);
    bw.Write(vbuf);
    CDZipSNET dz1 = new CDZipSNET();
    dz1.ZipMemToMemCallback += new CDZipSNET.OnZipMemToMemCallback(this.ZipMemToMemCallback_event);
    dz1.ActionDZ = CDZipSNET.DZACTION.ZIP_MEMTOMEM;
    return msZip;
}

Und das ist der ZipMemToMemCallback_event-Code:

public void ZipMemToMemCallback_event(CDZipSNET.MEMTOMEMACTION lAction,ref byte[] lpMemBuf,ref uint pdwSize,uint dwTotalReadL,uint dwTotalReadH,uint dwTotalWrittenL,uint dwTotalWrittenH,ref CDZipSNET.MEMTOMEMRESPONSE plRet)
{
    int bytesToRead;

    switch(lAction)
    {
        case CDZipSNET.MEMTOMEMACTION.MEM_READ_DATA:
            if((dwTotalReadL == 0) && (dwTotalReadH == 0))
            {
                msIN.Seek(0, System.IO.SeekOrigin.Begin);
                objBinaryReader = new System.IO.BinaryReader(msIN);
            }
            try
            {
                bytesToRead = (int)(objBinaryReader.BaseStream.Length - dwTotalReadL);
                if(bytesToRead > pdwSize)
                {
                    bytesToRead = (int)pdwSize;
                    plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_CONTINUE;
                }
                else
                { 
                    plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_DONE; 
                }
                pdwSize = (uint)bytesToRead;
                if(bytesToRead > 0)
                { 
                    objBinaryReader.Read(lpMemBuf, 0, bytesToRead); 
                }
            }
            catch 
            { 
                plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_ERROR; 
            }
            break;

        case CDZipSNET.MEMTOMEMACTION.MEM_WRITE_DATA:
            if((dwTotalWrittenL == 0) && (dwTotalWrittenH == 0))
            { 
                objBinaryWriter = new System.IO.BinaryWriter(msZip); 
            }
            try
            {
                objBinaryWriter.Write(lpMemBuf, 0, (int)pdwSize);
                plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_CONTINUE;
            }
            catch (System.Exception)
            { 
                plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_ERROR; 
            }
            break;

        default: plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_ERROR;
            break;
    }
}

Ich werde alles andere bereitstellen, um dieses Rätsel zu beantworten. Ich habe versucht, Zip regelmäßig zu dekomprimieren, Zlib, Gzip, ohne Erfolg. Ich werde jede Hilfe schätzen. Danke dir.

Bearbeiten: Das Problem ist, dass DinaZip eine proprietäre, abgekündigte Bibliothek ist, ohne Hilfe oder Fehlerbehebung durch das Unternehmen, das sie herausgebracht hat. Ich bin beauftragt, eine Reihe von Dateien zu dekomprimieren, die zuvor mit dieser Bibliothek (mit dem Code avobe) komprimiert wurden, und ich nicht Wenn die Bibliothek nicht mehr für die Dekomprimierung verfügbar ist, frage ich mich, ob jemand eine Möglichkeit kennt, diese Dateien zu dekomprimieren, indem er möglicherweise eine andere Bibliothek oder Methode verwendet.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage