Exemplo n.º 1
0
 private void ProcessResponse(IMessage message, ITransportHeaders headers, ref Stream stream, object state)
 {
     if (headers != null)
     {
         if ((string)headers["edonkeyCompress"] == "Yes")
         {
             //Descomprimir respuesta
             CompressionType c   = CompressionType.Zip;
             int             com = System.Convert.ToInt32(headers["CompressionType"]);
             if (Enum.GetName(typeof(CompressionType), com) != null)
             {
                 c = (CompressionType)com;
                 Descompresion descompresor  = new Descompresion(stream, c);
                 Stream        descomprimido = descompresor.ToStream;
                 if (descomprimido != null)
                 {
                     headers["CompressionType"] = null;
                     headers["edonkeyCompress"] = null;
                     //Si descomentamo no podemos hacer la depuracion
                     //headers["TamañoComprimido"] = null;
                     //headers["Tamaño"] = null;
                     stream = descomprimido;
                 }
             }
             else
             {
                 stream = null;
             }
         }
     }
 }
        /// <summary>
        /// metodo que descomprime los datos del archivo compreso
        /// </summary>
        /// <param name="ArchivoEntrada">Archivo compreso que se ingresa a la API</param>
        /// <param name="PathContendor">Ruta donde se encuentra el archivo</param>
        /// <param name="PathAEscribir">Ruta donde se escribira el resultado de la descompresion</param>
        public void ProcesoDecompresionHuffman(IFormFile ArchivoEntrada, string PathContendor, string PathAEscribir)
        {
            string NombreArchivo = string.Empty;

            byte[] ArchivoAByte          = File.ReadAllBytes((PathContendor + ArchivoEntrada.FileName));
            byte[] ArchivoDecompresoHuff = Descompresion.DescompresionCompleta(ArchivoAByte);
            var    RutaArchivo           = Path.Combine(PathAEscribir, NombreArchivoAComprimir);

            RutaContenedora            = PathContendor;
            RutaAEscribir              = PathAEscribir;
            tamanoCompreso             = ArchivoAByte.Length;
            tamanoDescompreso          = ArchivoDecompresoHuff.Length;
            NombreArchivoADescomprimir = ArchivoEntrada.FileName.ToString();//captura nombre del archivo original

            File.WriteAllBytes(RutaArchivo, ArchivoDecompresoHuff);
        }
Exemplo n.º 3
0
        public void Post([FromForm(Name = "archivo")] IFormFile file, string name)
        {
            Descompresion descomprimiendo = new Descompresion();
            string        ruta            = @"C:\CompresionesHechas\";
            string        fullPath        = ruta + file.FileName;

            byte[] archivo = new byte[file.Length];
            using (FileStream fs = new FileStream(fullPath, FileMode.Open))
            {
                int count;
                int sum = 0;

                while ((count = fs.Read(archivo, sum, archivo.Length - sum)) > 0)
                {
                    sum += count;
                }
            }
        }
Exemplo n.º 4
0
        private void ProcessRequest(IMessage message, ITransportHeaders headers, ref Stream stream, ref object state)
        {
            state = true;
            if ((string)headers["edonkeyCompress"] == "Yes")
            {
                //Descomprimir	y quitar la cabecera
                CompressionType c=CompressionType.Zip;
                int com=System.Convert.ToInt32(headers["CompressionType"]);
                if (Enum.GetName(typeof(CompressionType),com) != null)
                {
                    c=(CompressionType)com;
                    Descompresion descompresor=new Descompresion(stream,c);
                    Stream descomprimido = descompresor.ToStream;

                    if (descomprimido != null)
                    {
                        headers["CompressionType"] = null;
                        headers["edonkeyCompress"] = null;
                        //Si descomentamos no podemos hacer la depuracion
                        //headers["TamañoComprimido"] = null;
                        //headers["Tamaño"] = null;
                        stream = descomprimido;
                    }
                    else
                    {
                        stream = null;
                        Exception exp = new Exception(string.Format("{0}:Error, could not be decompressed.", m_Provider.ToString()));
                        IMessage responseMsg = new ReturnMessage(exp, (IMethodCallMessage)message);
                        System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf=
                            new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                        bf.Serialize(stream,responseMsg);
                    }
                }
                else
                {
                    stream = null;
                    Exception exp = new Exception(string.Format("{0}:Error, unknown method of compression.", m_Provider.ToString()));
                    IMessage responseMsg = new ReturnMessage(exp, (IMethodCallMessage)message);
                    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf=
                        new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                    bf.Serialize(stream,responseMsg);
                }
            }
        }
Exemplo n.º 5
0
 private void ProcessResponse(IMessage message, ITransportHeaders headers, ref Stream stream, object state)
 {
     if (headers != null)
     {
         if ((string)headers["edonkeyCompress"] == "Yes")
         {
             //Descomprimir respuesta
             CompressionType c=CompressionType.Zip;
             int com=System.Convert.ToInt32(headers["CompressionType"]);
             if (Enum.GetName(typeof(CompressionType),com) != null)
             {
                 c =(CompressionType)com;
                 Descompresion descompresor =new Descompresion(stream,c );
                 Stream descomprimido = descompresor.ToStream;
                 if (descomprimido != null)
                 {
                     headers["CompressionType"] = null;
                     headers["edonkeyCompress"] = null;
                     //Si descomentamo no podemos hacer la depuracion
                     //headers["TamañoComprimido"] = null;
                     //headers["Tamaño"] = null;
                     stream = descomprimido;
                 }
             }
             else
             {
                 stream=null;
             }
         }
     }
 }