为什么文件大小(以字节为单位)不等于每行的总和字节大小?

F.P*_*F.P 1 c# parsing text progress-bar

我尝试创建一个进度条,显示解析器读取文本文件的进度.

为此,我使用fileSize = FileInfo(file).Length和在每次迭代中读取文件的字节,我总结了当前行的字节

sum += reader.CurrentEncoding.GetByteCount(currentLine)

我假设当我读完整个文件时,sum应该等于fileSize.

但是,事实并非如此.sum总是低几千字节fileSize.为什么是这样?如何正确创建显示我已解析的文件数量的进度?

Hen*_*man 8

因为ReadLine()会删除Line结尾.通常是CR + LF但遗憾的是文本文件还有其他约定(只是LF).

我想你可以找出你的数据中的LineFeed是什么,只需添加长度,不需要打扰编码:

sum += reader.CurrentEncoding.GetByteCount(currentLine) + 2;
Run Code Online (Sandbox Code Playgroud)