在 C# 中,可以使用 System.IO.Compression 命名空间中的类来进行文件压缩和解压缩操作。具体来说,可以使用 GZipStream 和 DeflateStream 类来进行压缩和解压缩操作。
以下是一个简单的示例,演示如何使用 GZipStream 来压缩文件:
using System;
using System.IO;
using System.IO.Compression;
public static void CompressFile(string sourceFile, string destinationFile)
{
using (FileStream sourceStream = new FileStream(sourceFile, FileMode.Open))
{
using (FileStream destinationStream = new FileStream(destinationFile, FileMode.Create))
{
using (GZipStream compressionStream = new GZipStream(destinationStream, CompressionMode.Compress))
{
sourceStream.CopyTo(compressionStream);
}
}
}
}
上述代码中,我们首先创建了一个名为 CompressFile 的静态方法,该方法接受两个参数:源文件的路径和目标文件的路径。接下来,我们使用 FileStream 类创建一个源文件流和一个目标文件流。然后,我们使用 GZipStream 类创建一个压缩流,该流将压缩数据写入目标文件流中。最后,我们将源文件流复制到压缩流中,从而将数据压缩并写入目标文件流中。
下面是一个类似的示例,演示如何使用 GZipStream 类来解压缩文件:
using System;
using System.IO;
using System.IO.Compression;
public static void DecompressFile(string sourceFile, string destinationFile)
{
using (FileStream sourceStream = new FileStream(sourceFile, FileMode.Open))
{
using (FileStream destinationStream = new FileStream(destinationFile, FileMode.Create))
{
using (GZipStream decompressionStream = new GZipStream(sourceStream, CompressionMode.Decompress))
{
decompressionStream.CopyTo(destinationStream);
}
}
}
}
上述代码中,我们创建了一个名为 DecompressFile 的静态方法,该方法接受两个参数:源文件的路径和目标文件的路径。接下来,我们使用 FileStream 类创建一个源文件流和一个目标文件流。然后,我们使用 GZipStream 类创建一个解压缩流,该流将从源文件流中读取压缩数据并将其写入目标文件流中。最后,我们将解压缩流复制到目标文件流中,从而将数据解压缩并写入目标文件流中。
需要注意的是,以上代码示例仅适用于 GZip 格式的压缩文件。如果要处理其他压缩格式的文件,需要使用相应的压缩类来进行操作。