Declarar la matriz de bytes para la obtención de bytes de un archivo

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 Kommentare

  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.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea