Sanırım ile sıkıştırılmış pdf dosyalarını depolandığı bir veri tabanı var DynaZip Max Güvenli, aşağıdaki kodu kullanarak:DynaZip Max dosyasını başka bir kitaplıkla açmanın bir yolu var mı? FE DotNetZip
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;
}
Ve bu ZipMemToMemCallback_event kodudur:
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;
}
}
Hiçbir şey sağlayacaktır Bu bilmeceyi anlayabilmek için gerekli olan, düzenli Zip sıkıştırmayı, Zlib, Gzip'i boşuna denedim. Her türlü yardıma minnettar olurum. Teşekkür ederim.
Düzenleme: sorun DinaZip bir propietary, durdurulan kütüphane, ben daha önce bu kütüphaneyi kullanarak sıkıştırılmıştır dosyaların bir demet sıkıştırması commisioned ediyorum bunu piyasaya şirket tarafından hiçbir yardım ya da sorun giderme, olmasıdır (kod ile birlikte) ve kütüphanede dekompresyon için artık mevcut değil, bu dosyayı başka bir kütüphane veya yöntem kullanarak açmak için herhangi bir yol biliyorsa merak ediyorum.
Hata hangi satırı yapar ve hata mesajını nedir? –
@JeremyThompson Kod saklamak, DinaZip Max Secure kütüphanesini kullanarak dosyaları sıkıştırmak için kullanıldı. Onları açmaya ihtiyacım var, DotNetZip kütüphanesinin ZlibStream ve ZipFile işlevlerini sıkıştırmak için kullanmayı denedim, ancak geçerli bir Zip veya Zlib dosyası olmadığını söyleyen bir hata atıyor, bu tür dosya. –
Juust, zaten bildiğiniz bir şeyi belirtmek istedi ancak diğerleri şunları yapamaz: şifrelemenin dynazip uygulaması, diğer büyük kütüphanelerden herhangi biriyle _not uyumludur. Dynazip ile şifrelenmiş bir arşivi açmak için dynazip kullanmak için _have_ anlamına gelir. Hayır. Diğer. Seçeneği. –