//---------------------------------------------------------- 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"); } }
//---------------------------------------------------------- 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)); }