//---------------------------------------------------------- COMPRESION LZW  --------------------------------------------------------------------------------------------- -
        public ViewResult ReadLZ(string filename)
        {
            var           path          = Path.Combine(Server.MapPath("~/Archivo"), filename);
            CompresionLZW compresionLZW = new CompresionLZW();

            compresionLZW.ComprimirLZW(filename, Server.MapPath("~/Archivo"));
            var items = FilesUploaded2();

            return(View(items));
        }
        //---------------------------------------------------------- COMPRESION LZW  --------------------------------------------------------------------------------------------- -
        public ViewResult ReadLZ(string filename)
        {
            var           modelo        = new FactoresViewModel();
            var           path          = Path.Combine(Server.MapPath("~/Archivo"), filename);
            CompresionLZW compresionLZW = new CompresionLZW();

            compresionLZW.ComprimirLZW(filename, Server.MapPath("~/Archivo"));
            modelo.TamañoOriginal     = compresionLZW.ObtenerTamañoOriginal();
            modelo.TamañoComprimido   = compresionLZW.ObtenerTamañoComprimido(Server.MapPath("~/Archivo"), filename);
            modelo.FactorDeCompresion = modelo.TamañoOriginal / modelo.TamañoComprimido;
            modelo.RazonDeCompresion  = modelo.TamañoComprimido / modelo.TamañoOriginal;
            return(View(modelo));
        }
        public async Task <string> CompressLZW([FromForm] FileUploadFromApi objFile)
        {
            if (objFile.files != null)
            {
                try
                {
                    if (objFile.files.Length > 0)
                    {
                        if (!Directory.Exists(_environment.WebRootPath + "\\ArchivosAComprimirLZW\\"))
                        {
                            Directory.CreateDirectory(_environment.WebRootPath + "\\ArchivosAComprimirLZW\\");
                        }
                        using (FileStream fileStream = System.IO.File.Create(_environment.WebRootPath + "\\ArchivosAComprimirLZW\\" + objFile.files.FileName))
                        {
                            CompresionLZW CompresionLzw = new CompresionLZW();
                            objFile.files.CopyTo(fileStream);
                            fileStream.Flush();
                            fileStream.Close();
                            CompresionLzw.ComprimirLZW(objFile.files.FileName, _environment.WebRootPath + "\\ArchivosAComprimirLZW\\");
                            return("\\ArchivosAComprimirLZW\\" + objFile.files.FileName);
                        }
                    }

                    else
                    {
                        return("Failed");
                    }
                }
                catch (Exception ex)
                {
                    return(ex.Message.ToString());
                }
            }
            else
            {
                return("No se ha agregado ningun archivo para comprimir, Utiliza la Herramienta Postman para enviar un Archivo");
            }
        }
示例#4
0
        //---------------------------------------------------------- COMPRESION LZW  --------------------------------------------------------------------------------------------- -
        public ViewResult ReadLZ(string filename)
        {
            Dictionary <string, int> Diccionario_Caracteres_LZ        = new Dictionary <string, int>();
            Dictionary <string, int> Diccionario_CaracteresOriginales = new Dictionary <string, int>();
            List <string>            Text_archivo = new List <string>();
            var path = Path.Combine(Server.MapPath("~/Archivo"), filename);

            FilePath = Server.MapPath("~/Archivo");
            using (var stream = new FileStream(path, FileMode.Open))
            {
                using (var reader = new BinaryReader(stream))
                {
                    var byteBuffer = new byte[bufferLength];
                    while (reader.BaseStream.Position != reader.BaseStream.Length)
                    {
                        byteBuffer = reader.ReadBytes(bufferLength);
                    }
                    var i = 0;
                    foreach (var item in byteBuffer)
                    {
                        Text_archivo.Add(item.ToString());
                    }
                }
            }
            int newindex = 0;
            int j        = 1;

            foreach (var item in Text_archivo)
            {
                if (Diccionario_Caracteres_LZ.ContainsKey(item) == false)
                {
                    Diccionario_Caracteres_LZ.Add(item, j);
                    Diccionario_CaracteresOriginales.Add(item, j);
                    j++;
                }
            }

            //Crear diccionario con letras que ya existen
            for (int i = newindex; i < Text_archivo.Count - 1; i++)
            {
                i = newindex;
                if (newindex < Text_archivo.Count - 1)
                {
                    if (Diccionario_Caracteres_LZ.ContainsKey(Text_archivo[i]))
                    {
                        newindex = CrearDiccionario(Diccionario_Caracteres_LZ, Text_archivo, Text_archivo[i] + Text_archivo[i + 1], newindex);
                    }
                    else
                    {
                        Diccionario_Caracteres_LZ.Add(Text_archivo[i], Diccionario_Caracteres_LZ.Count + 1);
                        j++;
                        newindex++;
                    }
                }
                else if (newindex == Text_archivo.Count)
                {
                    if (Diccionario_Caracteres_LZ.ContainsKey(Text_archivo[i]) == false)
                    {
                        Diccionario_Caracteres_LZ.Add(Text_archivo[i], Diccionario_Caracteres_LZ.Count + 1);
                        j++;
                    }
                }
            }
            CompresionLZW compresionLZW = new CompresionLZW();

            compresionLZW.ComprimiryEscribir(Diccionario_CaracteresOriginales, Diccionario_Caracteres_LZ, FilePath);
            var items = FilesUploaded2();

            return(View(items));
        }