내가 여기서 잘못하고있는 것을 모른다. 내 코드는 첫 번째 패스에서 예상대로 작동하지만 두 번째 패스에서는 실행되지 않고 "읽기가 버퍼 오버런을 일으킬 것"이라는 예외가 발생합니다.읽기가 버퍼 오버런 오류
버퍼가 잘못되어 있습니다. 내가 덮어 쓰는 것처럼?
나는
using (Stream stream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead = 0;
long bytesToRead = stream.Length;
while (bytesToRead > 0)
{
int n = stream.Read (buffer, bytesRead, 1024);
if (n == 0) break;
//do work on buffer...
bytesRead += n;
bytesToRead -= n;
}
}
닷넷 2.0 모노에서 작업 .. 본질적으로 동일한 코드를 가지고 있었고 MSDN 예제하지만 기쁨을 일치하도록 변경되었습니다.
bytesRead 변수는 0으로 유지되어야한다고 생각합니다. 파일이 아니라 버퍼로 오프셋됩니다. –