Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 파일 압축 및 압축 해제

<시간/>

C#에서 System.IO.Compression 네임스페이스를 사용하여 C#에서 파일을 압축 및 압축 해제합니다.

압축

파일을 압축하려면 FileStream 클래스와 함께 GZipStream 클래스를 사용하십시오. 다음 매개변수를 설정합니다. 압축할 파일 및 출력 압축 파일 이름.

여기서 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;
   }
}