Básicamente me estoy leyendo todos los bytes de un archivo en una matriz de bytes mediante lector de secuencia.

La matriz he declarado este aspecto : byte[] array = new byte[256];

El tamaño de la matriz de 256 puede leer el conjunto de bytes del archivo? Diciendo que tiene un archivo de 500 bytes en lugar de 256?

O cada elemento de la matriz tiene el tamaño de 256 bytes?

  • Yo realmente no entiendo su pregunta. Se puede reformular?
  • ¿Qué comando se utiliza para leer en? Usted no será capaz de leer en > 256 256 bytes en una matriz de bytes.
  • Estoy usando el BaseStream.La función de lectura .
InformationsquelleAutor Joshua Black | 2012-12-01

2 Comentarios

  1. 0

    Usted podría utilizar Archivo.ReadAllBytes lugar:

    byte[] fileBytes = File.ReadAllBytes(path);

    o si usted simplemente desea saber el tamaño, con un FileInfo objeto:

    FileInfo f = new FileInfo(path);
    long s1 = f.Length;

    Editar: Si desea que «en un modo clásico» como comentó:

    byte[] array;
    using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        int num = 0;
        long length = fileStream.Length;
        if (length > 2147483647L)
        {
            throw new ArgumentException("File is greater than 2GB, hence it is too large!", "path");
        }
        int i = (int)length;
        array = new byte[i];
        while (i > 0)
        {
            int num2 = fileStream.Read(array, num, i);
            num += num2;
            i -= num2;
        }
    }

    (que se reflejan a través de ILSpy)

    • Sí, yo sé, pero quiero hacerlo de una manera clásica
    • Añadido el «modo clásico», aunque yo prefiero File.ReadAllBytes 😉
  2. 1

    Solo uso

     byte[] byteData = System.IO.File.ReadAllBytes(fileName);

    y, a continuación, usted puede averiguar cuánto tiempo el archivo estaba mirando el byteData.Length propiedad.

Dejar respuesta

Please enter your comment!
Please enter your name here