用 C# 压缩和解压缩文件


在 C# 中使用 System.IO.Compression 命名空间压缩和解压缩文件。

压缩

要压缩某个文件,请将 GZipStream 类与 FileStream 类一起使用。设置以下参数:要压缩的文件以及输出 zip 文件的名称。

这里,outputFile 是输出文件,文件将被读入 FileStream。

示例

using(var compress = new GZipStream(outputFile, CompressionMode.Compress, false)) {
   byte[] b = new byte[inFile.Length];
   int read = inFile.Read(b, 0, b.Length);
   while (read > 0) {
      compress.Write(b, 0, read);
      read = inFile.Read(b, 0, b.Length);
   }
}

解压缩

要解压缩某个文件,请使用相同的 GZipStream 类。设置以下参数:源文件以及输出文件名称。

从 zip 源文件打开 GZipStream。

using (var zip = new GZipStream(inStream, CompressionMode.Decompress, true))

要解压缩,请使用循环并且只要流中有数据就要读取。写入到输出流中,生成一个文件。该文件是我们的解压缩文件。

示例

using(var zip = new GZipStream(inputStream, CompressionMode.Decompress, true)) {
   byte[] b = new byte[inputStream.Length];
   while (true) {
      int count = zip.Read(b, 0, b.Length);
      if (count != 0)
      outputStream.Write(b, 0, count);
      if (count != b.Length)
      break;
   }
}

更新于: 2020-06-23

2K+ 浏览

开启您的职业生涯

通过完成课程获得认证

开始
广告