Esempio n. 1
0
        private static void DeCompressArchive(string sourceFile, string dstDir, CompressionTechnique compressionTechnique)
        {
            TarArchive archive  = null;
            Stream     inStream = null;

            try
            {
                switch (compressionTechnique)
                {
                case CompressionTechnique.Gzip:
                    inStream = new GZipInputStream(File.OpenRead(sourceFile));
                    break;

                case CompressionTechnique.BZip2:
                    inStream = new BZip2InputStream(File.OpenRead(sourceFile));
                    break;

                default:
                    Console.WriteLine("Unknown Compression Technique.");
                    break;
                }

                if (inStream == null)
                {
                    Console.WriteLine(string.Format("Error reading {0} ", sourceFile));
                    return;
                }

                TarInputStream tarIn = new TarInputStream(inStream);

                archive = TarArchive.CreateInputTarArchive(tarIn);

                if (!string.IsNullOrEmpty(dstDir))
                {
                    archive.ExtractContents(dstDir);
                }
                else
                {
                    archive.ExtractContents("./");
                }

                archive.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("Error extracting {0} ", sourceFile));
                Console.WriteLine(string.Format("Exception message {0}", ex.Message));
                Usage();
            }
            finally
            {
                if (archive != null)
                {
                    archive.Close();
                }
            }
        }
Esempio n. 2
0
        private static void JustDecompress(string sourceFile, CompressionTechnique compressionTechnique)
        {
            Stream inStream = null;

            try
            {
                switch (compressionTechnique)
                {
                case CompressionTechnique.Gzip:
                    inStream = new GZipInputStream(File.OpenRead(sourceFile));
                    break;

                case CompressionTechnique.BZip2:
                    inStream = new BZip2InputStream(File.OpenRead(sourceFile));
                    break;

                default:
                    Console.WriteLine("Unknown Compression Technique.");
                    break;
                }

                if (inStream == null)
                {
                    Console.WriteLine(string.Format("Error reading {0} ", sourceFile));
                    return;
                }

                using (inStream)
                    using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(sourceFile)))
                    {
                        byte[] buffer = new byte[4096];
                        StreamUtils.Copy(inStream, outStream, buffer);
                    }
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("Error extracting {0} ", sourceFile));
                Console.WriteLine(string.Format("Exception message {0}", ex.Message));
                Usage();
            }
        }