I worked on a function that analyzes third-party phrase logs. Logs are in Gzip, so I use the decompress function, which works for any other Gzip files that we use.
When unpacking these files, I get only the first line of the compressed file, without exception, it just does not find the remaining bytes, as if the EOF in the first line. I tried using Ionic.Zlib instead of System.IO.Compression, but the result was the same. Files do not seem to be corrupted in any way, unpacking them using Winrar.
If anyone knows how to solve this, I will be happy for your help. Thanks
You can download a sample file here: http://www.adjustyourset.tv/fms_6F9E_20120621_0001.log.gz
This is my decompression function:
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; } }
source share