我正在使用以下方法序列化对象:
/// <summary>
/// Serializes a file to a compressed XML file. If an error occurs, the exception is NOT caught.
/// </summary>
/// <typeparam name="T">The Type</typeparam>
/// <param name="obj">The object.</param>
/// <param name="fileName">Name of the file.</param>
public static void SerializeToXML<T>(T obj, string fileName)
{
var serializer = new XmlSerializer(typeof(T));
using (var fs = new FileStream(fileName, FileMode.Create))
{
using (var compressor = new GZipStream(fs, CompressionMode.Compress))
{
serializer.Serialize(compressor, obj);
}
}
}
一切顺利,但有一个小问题:该方法创建了一个 .zip 文件,其中包含完全没有文件扩展名的压缩 xml。我如何修改此方法,以便将正确的文件扩展名添加到压缩文件中?
例子:假设我有以下代码:
public class test
{
public string test {get; set;}
}
public void save()
{
var newTest = new test();
newTest.test = "bla";
SerializeToXML(newTest, c:\test.zip")
}
您可以尝试将文件 'test.zip'
重命名为 'test.xml.zip'
然后解压后 zip 扩展名将被删除,您将只有 xml .
我是一名优秀的程序员,十分优秀!