的大文件试图转换流对象为byte [],并使用对于相同的以下方法:转换流为byte [] C#为2GB
public static byte[] ReadFully(System.IO.Stream input)
{
byte[] buffer = new byte[16*1024];
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
然而输入参数“输入”是用于大文件是2 GB,因此代码不会进入while循环,因此不会将其转换为字节数组。
对于较小的文件,它正在罚款
我怀疑你将有一个艰难的时间超过2^31个元素创建一个数组。你为什么需要这样做? –
尝试使用SharePoint 2010 - 客户端对象模型下载大文件。我们有2GB的文件。因此,下载它我们使用我们下面的代码:FileInformation fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext,“thisFile”); System.IO.Stream流= fileInfo.Stream;现在我们的项目需求就是我们想要返回byte [],而不是流对象,因此试图转换流的byte [] – nina
那“项目需求”听起来很粘稠,是诚实的。你是否检查过一个大的可行的字节数组? –