基本上我正在使用流读取器将文件中的所有字节读入字节数组。
我声明的数组如下所示:byte[] array = new byte[256];
数组256的大小可以读取文件中的整个字节吗?说文件有500个字节而不是256个?
或者数组中的每个元素的大小是256字节?
答案 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
反映)