【问题标题】:Unzipping a .gz file解压缩 .gz 文件
【发布时间】:2017-02-28 14:27:06
【问题描述】:

我是一名学生,我正在尝试解压缩一个 gz 文件,但它给出了以下错误消息:

在 GZip 标头中说明幻数不正确,这是代码,如果有任何人可以让我知道我在做什么,我真的很感谢你

        FileInfo fileToDecompress = new FileInfo(dirpath);
        {
            Decompress(fileToDecompress);
        }

        Dts.TaskResult = (int)ScriptResults.Success;
    }

    public static void Decompress(FileInfo fileToDecompress)
    {
        using (FileStream originalFileStream = fileToDecompress.OpenRead())
        {
            string currentFileName = fileToDecompress.FullName;
            string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);

            using (FileStream decompressedFileStream = File.Create(newFileName))
            {
                using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress,true))
                {
                    decompressionStream.CopyTo(decompressedFileStream);
                    Console.WriteLine("Decompressed: {0}", fileToDecompress.Name);
                }
            }
        }
    }

    #region ScriptResults declaration
    /// <summary>
    /// This enum provides a convenient shorthand within the scope of this class for setting the
    /// result of the script.
    /// 
    /// This code was generated automatically.
    /// </summary>
    enum ScriptResults
    {
        Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
        Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
    };
    #endregion

}

【问题讨论】:

    标签: .net compression gzipstream


    【解决方案1】:

    这就是它所说的。你认为的 gzip 文件不是,也不是以0x1f 0x8b 开头的。

    【讨论】:

    • 你好,马克,希望你一切都好。当我尝试未压缩为压缩文件(.gz)时参考我的查询,它显示以下错误消息。我不明白为什么会这样。谢谢 Subiraj