//Recibo los datos de FileUploadController //-------------------COMPRESION DE HUFFMAN ------------------------------------- public ViewResult Read(string filename) { List <string> Text_archivo = new List <string>(); var path = Path.Combine(Server.MapPath("~/Archivo"), filename); FilePath = Server.MapPath("~/Archivo"); var modelo = new FactoresViewModel(); using (var stream = new FileStream(path, FileMode.Open)) { using (var reader = new BinaryReader(stream)) { modelo.TamañoOriginal = Convert.ToInt32(reader.BaseStream.Length); var byteBuffer = new byte[bufferLength]; while (reader.BaseStream.Position != reader.BaseStream.Length) { byteBuffer = reader.ReadBytes(bufferLength); foreach (var item in byteBuffer) { if (Diccionario_CaracteresHuff.ContainsKey(Convert.ToString(item)) == true) { Diccionario_CaracteresHuff[Convert.ToString(item)] += 1; } else { Diccionario_CaracteresHuff.Add(Convert.ToString(item), 1); } Text_archivo.Add(Convert.ToString(item)); } } } ArbolHuff arbol = new ArbolHuff(); //Manda a llamar el metodo del arbol en el que agrega a una lista de nodos, los distintos caracteres que existen arbol.agregarNodos(Diccionario_CaracteresHuff, Text_archivo, listadeNodos, FilePath); modelo.TamañoComprimido = arbol.TamañoComprimido(); } modelo.FactorDeCompresion = modelo.TamañoOriginal / modelo.TamañoComprimido; modelo.RazonDeCompresion = modelo.TamañoComprimido / modelo.TamañoOriginal; return(View(modelo)); }
//Recibo los datos de FileUploadController //-------------------COMPRESION DE HUFFMAN ------------------------------------- public ViewResult Read(string filename) { 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); } foreach (var item in byteBuffer) { if (Diccionario_CaracteresHuff.ContainsKey(Convert.ToString(item)) == true) { Diccionario_CaracteresHuff[Convert.ToString(item)] += 1; } else { Diccionario_CaracteresHuff.Add(Convert.ToString(item), 1); } Text_archivo.Add(Convert.ToString(item)); } } ArbolHuff arbol = new ArbolHuff(); //Manda a llamar el metodo del arbol en el que agrega a una lista de nodos, los distintos caracteres que existen arbol.agregarNodos(Diccionario_CaracteresHuff, Text_archivo, listadeNodos, FilePath); } var items = FilesUploaded(); return(View(items)); }