C# 解压缩tar.gz文件

476 阅读1分钟

引用这个Nuget包: ICSharpCode.SharpZipLib.dll

        /// <summary>
        /// Decompress GZ file
        /// </summary>
        /// <param name="fileToDecompress"></param>
        private static void DecompressGz(string gzFile)
        {
            Stream inStream = null;
            Stream gzipStream = null;
            TarArchive tarArchive = null;
            try
            {
                using (inStream = File.OpenRead(gzFile))
                {
                    using (gzipStream = new GZipInputStream(inStream))
                    {
                        tarArchive = TarArchive.CreateInputTarArchive(gzipStream);
                        tarArchive.ExtractContents(tempPath);
                        tarArchive.Close();
                    }
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.ToString());
            }
            finally
            {
                if (null != tarArchive) tarArchive.Close();
                if (null != gzipStream) gzipStream.Close();
                if (null != inStream) inStream.Close();
            }
        }