【发布时间】:2009-01-05 10:53:34
【问题描述】:
我正在从一些慢速源(如 FTP 服务器)读取 .gz 文件,并立即处理接收到的数据。看起来像这样:
FtpWebResponse response = ftpclientRequest.GetResponse() as FtpWebResponse;
using (Stream ftpStream = response.GetResponseStream())
using (GZipStream unzipped = new GZipStream(ftpStream, CompressionMode.Decompress))
using (StreamReader linereader = new StreamReader(unzipped))
{
String l;
while ((l = linereader.ReadLine()) != null)
{
...
}
}
我的问题是显示准确的进度条。事先我可以得到压缩的 .gz 文件大小,但我不知道解压缩的内容有多大。 逐行读取文件我很清楚我读取了多少未压缩字节,但我不知道这与压缩文件大小有何关系。
那么,有什么方法可以从 GZipStream 中获取文件指针在压缩文件中的前进距离?我只需要当前位置,读取文件前可以获取的gz文件大小。
【问题讨论】:
标签: ftp filesize gzipstream