C# 分段读取大文件
private byte[] ReadFileFromDisk(string fileFullName)
{
byte[] returnDatas;
using (FileStream flieStream = new FileStream(fileFullName, FileMode.Open, FileAccess.Read))
{
long unReadLength = flieStream.Length;
returnDatas = new byte[flieStream.Length];
int start = 0;
byte[] fileData = new byte[1024 * 1024];
int maxLength = fileData.Length;
int readLen = 0;
while (unReadLength > 0)
{
flieStream.Position = start;
if (unReadLength < maxLength)
{
readLen = flieStream.Read(fileData, 0, Convert.ToInt32(unReadLength));
Array.Copy(fileData, 0, returnDatas, start, unReadLength);
}
else
{
readLen = flieStream.Read(fileData, 0, maxLength);
Array.Copy(fileData, 0, returnDatas, start, maxLength);
}
start += readLen;
unReadLength -= readLen;
}
return returnDatas;
}
}