在C#中,可以使用System.IO.Compression命名空间中的类来对XML文件进行压缩。下面是一个简单的示例代码:
using System;
using System.IO;
using System.IO.Compression;
using System.Xml;
public class XmlCompression
{
public static void CompressXmlFile(string filePath)
{
string compressedFilePath = filePath + ".gz";
using (FileStream originalFileStream = File.OpenRead(filePath))
{
using (FileStream compressedFileStream = File.Create(compressedFilePath))
{
using (GZipStream compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress))
{
originalFileStream.CopyTo(compressionStream);
}
}
}
Console.WriteLine("XML file compressed successfully.");
}
public static void DecompressXmlFile(string compressedFilePath)
{
string decompressedFilePath = compressedFilePath.Replace(".gz", "");
using (FileStream compressedFileStream = File.OpenRead(compressedFilePath))
{
using (FileStream decompressedFileStream = File.Create(decompressedFilePath))
{
using (GZipStream decompressionStream = new GZipStream(compressedFileStream, CompressionMode.Decompress))
{
decompressionStream.CopyTo(decompressedFileStream);
}
}
}
Console.WriteLine("XML file decompressed successfully.");
}
public static void Main()
{
string filePath = "example.xml";
CompressXmlFile(filePath);
string compressedFilePath = filePath + ".gz";
DecompressXmlFile(compressedFilePath);
}
}
在上面的示例代码中,我们定义了CompressXmlFile
方法和DecompressXmlFile
方法来分别压缩和解压缩XML文件。我们使用GZipStream
类来实现对XML文件的压缩和解压缩操作。在Main
方法中,我们先压缩XML文件,然后再解压缩已压缩的XML文件。
请注意,压缩后的文件扩展名为“.gz”,解压缩时需要将其替换为原始XML文件的扩展名。