首页 > 解决方案 > c# Filestream 不能处理大的二进制文件

问题描述

文件大小超过 6GB,但是 ReadFileSteam_ORI2 的位置超过 3,960,000,000 test4 缓冲区被零填充。(真正的文件数据不是零。)我认为可能读取过程在内部失败。为什么会出现这个问题?在 3,960,000,000 位置下,没有错误,所有过程都运行良好。

long now_pos2 = 0;
FileStream ReadFileStream_ORI2 = new FileStream(
  d_ori.FileName,
  FileMode.Open,
  FileAccess.Read,
  FileShare.Read
);

byte[] test4 = new byte[10000000];

for (int i = 0; i < 400; i++)
{ 

  if (i==396) {; }

  ReadFileStream_ORI2.Seek(now_pos2, SeekOrigin.Begin);
  ReadFileStream_ORI2.Read(test4, 0, 10000000);
  now_pos2 += 10000000;
}

标签: c#positionfilestream

解决方案


推荐阅读