声明字节数组以从文件中获取字节

时间:2012-12-01 20:59:20

标签: c#

基本上我正在使用流读取器将文件中的所有字节读入字节数组。

我声明的数组如下所示:byte[] array = new byte[256];

数组256的大小可以读取文件中的整个字节吗?说文件有500个字节而不是256个?

或者数组中的每个元素的大小是256字节?

2 个答案:

答案 0 :(得分:1)

只需使用

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

然后您可以通过查看byteData.Length属性找出文件的持续时间。

答案 1 :(得分:0)

您可以改为使用File.ReadAllBytes

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

或者如果您只想知道尺寸,请使用FileInfo对象:

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

修改:如果您想以“经典方式”进行评论:

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;
    }
}

(通过ILSpy反映)