protected override void _Unir(string fichero, string dirDest) { if (!File.Exists (fichero)) { return; } FileInfo fi = new FileInfo (fichero); string destino = dirDest + Path.DirectorySeparatorChar + fi.Name.Substring (0, fi.Name.LastIndexOf ('.')); long datosTotales = fi.Length; FileStream input = File.OpenRead (fichero); LZMAInputStream lzmaInput = new LZMAInputStream (input); datosTotales = lzmaInput.UncompressedSize; Stream fos = UtilidadesFicheros.CreateWriter (destino); byte[] buffer = new byte[Consts.BUFFER_LENGTH]; int leidos = 0; long transferidos = 0; OnProgress (0, datosTotales); while ((leidos = lzmaInput.Read (buffer, 0, buffer.Length)) > 0) { fos.Write (buffer, 0, leidos); transferidos += leidos; //OnProgress (input.Position, datosTotales); OnProgress (transferidos, datosTotales); } lzmaInput.Close (); fos.Close (); }