【问题标题】:How to specify xml file extension while serializing Xml to a GZipStream如何在将 Xml 序列化为 GZipStream 时指定 xml 文件扩展名
【发布时间】:2013-10-07 18:46:49
【问题描述】:

我正在使用以下代码序列化一个对象,该代码使用 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。

感谢阅读。

【问题讨论】:

    标签: c# .net-4.0 xml-serialization gzipstream


    【解决方案1】:

    我想出了一个简单的方法来解决这个问题。我认为,如果这种方式应该被认为是一种 hack 或实用且良好的解决方案,则取决于每个人。

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

    我希望这在未来不会中断......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多