Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2008, 05:50
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 9 meses
Puntos: 7
Escribir Binarios Demasiado Grandes.

Hola buenas señores !!!

Verán, me estoy peleando ahora mismo con el BinaryWriter y el BinaryRead para realizar una copia de un fichero.

Sé que se puede hacer con el File.Copy(), pero lo que quiero hacer es aprender a escribir Binarios de Tamaño considerable.

Vamos, ya he usado varias veces el StreamWriter y demás para escribir ficheros de texto e imágenes pequeñas. Pero ahora lo que quiero es leer un fichero de vídeo y guardarlo en otra carpeta.

Me imagino que los métodos de Read() se me quedarán pequeños, ya que trabajan con array de Bytes con parámetros de tipo INT y claro... me imagino que el tamaño de este fichero será de tipo LONG.

Actualmente tengo el siugiente código, el cual pensaba que valdría pero me está fallando:
Código:
            FileStream objStreamFile = File.Open(txtPathFichero, FileMode.Open, FileAccess.Read);
            BinaryReader objBinLectura = new BinaryReader(objStreamFile);

            objBinLectura.BaseStream.Seek(0, SeekOrigin.Begin);            

            
            FileStream objStreamDestino = File.Open(@"C:\nusk.wmv", FileMode.OpenOrCreate);
            BinaryWriter objEscritura = new BinaryWriter(objStreamDestino);

            long tamanioFichero = 0;
            for (tamanioFichero = 0; tamanioFichero < objStreamFile.Length; tamanioFichero++)
            {
                objEscritura.Write(objBinLectura.Read());
            }

            objEscritura.Close();
            objBinLectura.Close();
            objStreamDestino.Close();
            objStreamFile.Close();
Pensaba que leyendo Byte a Byte no me cascaría el programa y que me escribiría bien los datos, pero me equivoqué... el error/excepcion que me da es el siguiente:
Código:
El búfer de caracteres de salida es demasiado pequeño para almacenar caracteres descodificados. Codificación de 'Unicode (UTF-8)' con recursos de reserva 'System.Text.DecoderReplacementFallback'.
Nombre del parámetro: chars

En fin, espero haber explicado correctamente lo que pretendo hacer y el porqué. Y bueno, haber si alguien me puede hechar un cable, jejeje.

Saludos.
__________________
Charlie.