Uncompressing UNIX *.Z files
I searched online for a .NET library that can be used to decompress *.Z files (compressed by the UNIX compress utility) but was unable to find anything non-commercial. I found however some code in Java that looked promising, so I ported it to C#. I integrated the resulting code with the SharpZipLib library, but until that gets officially integrated and released, I decided to release a stand-alone version here.
The code is contained in a single file (download LzwInputStream.cs) and is pretty straight-forward to use. The following example shows how to uncompress a *.Z file using c-sharp.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | using System; using System.IO; using Ebixio.LZW; class MainClass { public static void Main( string [] args) { byte [] buffer = new byte [4096]; string outFile = Path.GetFileNameWithoutExtension(args[0]); using (Stream inStream = new LzwInputStream(File.OpenRead(args[0]))) using (FileStream outStream = File.Create(outFile)) { int read; while ((read = inStream.Read(buffer, 0, buffer.Length)) > 0) { outStream.Write(buffer, 0, read); } } } } |