2013-10-07 2 views
0

Я сериализации объекта с помощью следующего кода, который использует GZip и Xml:Как указать расширение файла XML при сериализации Xml к GZipStream

 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); 
     } 

Это прекрасно работает, с одной проблемой: пользователь может откройте файл .gz с 7Zip (после установки ассоциации файлов), но затем он не может просто дважды щелкнуть показанный xml внутри файла .gz, так как он не имеет расширения .xml (хотя на самом деле содержимое там, в формате xml и все).

Вопрос: «Как я могу сериализовать XML в GZipStream, чтобы расширение .xml было сохранено вместе с файлом в архиве .gz?» Я использую .NET 4.0.

Спасибо за чтение.

ответ

0

У меня есть простой способ решить это. Я думаю, что если этот путь следует считать взломом или прагматичным и прекрасным решением, то это зависит от каждого.

Просто установите имя файла GZip на myFileName.xml.gz. Это фактически делает внутренний файл отображаемым как myFileName.xml (вырезание расширения .gz, как и раньше).

Надеюсь, это не сломается в будущем ...

Смежные вопросы