如何在将 Xml 序列化为 GZipStream 时指定 xml 文件扩展名

本文关键字:xml 扩展名 文件 GZipStream Xml 序列化 | 更新日期: 2023-09-27 18:34:28

我正在使用以下代码序列化一个对象,该代码使用 GZip 和 Xml:

        FileStream fs = new FileStream(destinationfolder + "/myFileName.gz",
                                       FileMode.Create, FileAccess.Write);
        using (var gz = new GZipStream(fs, CompressionMode.Compress)) {
            var serializer = new XmlSerializer(typeof(MyObjectType));
            serializer.Serialize(gz, myObject);
        }

这工作正常,只有一个问题:用户可以用7Zip打开.gz文件(在设置文件关联之后(,但是他不能只是双击.gz文件中显示的xml,因为它没有.xml扩展名(尽管内容实际上在那里,xml格式等等(。

问题是:"如何将 XML 序列化为GZipStream以便将.xml扩展名与文件一起保存在.gz存档中?我正在使用 .NET 4.0。

感谢您的阅读。

如何在将 Xml 序列化为 GZipStream 时指定 xml 文件扩展名

我已经找到了一个简单的方法来解决这个问题。我认为,这种方式是否应该被视为黑客或务实而精细的解决方案,这取决于每个人。

只需将 GZip 文件名设置为 myFileName.xml.gz .这实际上使内部文件显示为myFileName.xml(像以前一样修剪掉.gz扩展名(。

我希望这不会在未来破裂...