如何在GZipStream压缩中创建文件和存档的不同名称?

时间:2016-06-06 18:51:35

标签: c# compression archive gzipstream

我在当前目录中有一个文件,名称为firstName。我想用这个文件创建一个存档(文件名必须保留)。存档名称必须是archiveName。但是当我使用我的代码时,我得到一个带有rigth名称的存档,但其中的文件名已被更改。我该如何解决?

    public static void Compress(string firstName, string secondName)
    {
        FileInfo fileToCompress = new FileInfo(firstName);
        using (FileStream originalFileStream = fileToCompress.OpenRead())
        {
            if ((File.GetAttributes(fileToCompress.FullName) &
                FileAttributes.Hidden) != FileAttributes.Hidden & fileToCompress.Extension != ".gz")
            {
                using (FileStream compressedFileStream = File.Create(secondName))
                {
                    using (GZipStream compressionStream = new GZipStream(compressedFileStream,
                        CompressionMode.Compress))
                    {
                        originalFileStream.CopyTo(compressionStream);

                    }
                }
                FileInfo info = new FileInfo(secondName);
                Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
                fileToCompress.Name, fileToCompress.Length.ToString(), info.Length.ToString());
            }
        }
    }

1 个答案:

答案 0 :(得分:2)

GZipStream不是ZIP文件;它的直接流压缩。
它没有文件或名字的概念;它只是压缩字节。

您正在寻找ZipArchive课程。