我一直工作在解析第三方FMS日志的功能。 日志是采用gzip,所以我用一个解压缩功能,对于我们使用任何其他的gzip文件的工作。
当解压缩这些文件,我只得到压缩文件的第一行,有没有例外,它只是没有找到字节的其余部分,如果有在第一线的EOF。 我试着用Ionic.Zlib代替System.IO.Compression但结果是一样的。 似乎该文件不以任何方式被损坏,解压他们用WinRAR工作。
如果有人对如何解决这个任何想法,我会感谢你的帮助。 谢谢
你可以在这里下载示例文件: http://www.adjustyourset.tv/fms_6F9E_20120621_0001.log.gz
这是我的解压功能:
public static bool DecompressGZip(String fileRoot, String destRoot)
{
try
{
using (FileStream fileStram = new FileStream(fileRoot, FileMode.Open, FileAccess.Read))
{
using (FileStream fOutStream = new FileStream(destRoot, FileMode.Create, FileAccess.Write))
{
using (GZipStream zipStream = new GZipStream(fileStram, CompressionMode.Decompress, true))
{
byte[] buffer = new byte[4096];
int numRead;
while ((numRead = zipStream.Read(buffer, 0, buffer.Length)) != 0)
{
fOutStream.Write(buffer, 0, numRead);
}
return true;
}
}
}
}
catch (Exception ex)
{
LogUtils.SaveToLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "Eror decompressing " + fileRoot + " : " + ex.Message, Constants.systemLog, 209715200, 6);
return false;
}
}