첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ GZIP 압축 해제하기

----------------------------------------------------------------------------------------------------

using System;

using System.IO;

using System.IO.Compression;

 

#region GZIP 압축 해제하기 - DecompressGZIP(sourceStream, targetStream)

 

/// <summary>

/// GZIP 압축 해제하기

/// </summary>

/// <param name="sourceStream">소스 스트림</param>

/// <param name="targetStream">바이트 스트림</param>

/// <returns>압축 해제 바이트 수</returns>

public long DecompressGZIP(Stream sourceStream, Stream targetStream)

{

    try

    {

        using(GZipStream gZipStream = new GZipStream(sourceStream, CompressionMode.Decompress))

        {

            return StreamManager.Write(gZipStream, targetStream);

        }

    }

    catch

    {

        return -1L;

    }

}

 

#endregion

 

#region GZIP 압축 해제하기 - DecompressGZIP(sourceFilePath, targetFilePath)

 

/// <summary>

/// GZIP 압축 해제하기

/// </summary>

/// <param name="sourceFilePath">소스 파일 경로</param>

/// <param name="targetFilePath">타겟 파일 경로</param>

/// <returns>압축 해제 바이트 수</returns>

public long DecompressGZIP(string sourceFilePath, string targetFilePath)

{

    try

    {

        using(FileStream sourceFileStream = new FileStream(sourceFilePath, FileMode.Open, FileAccess.Read))

        {

            using(FileStream targetFileStream = new FileStream(targetFilePath, FileMode.Create, FileAccess.Write))

            {

                return DecompressGZIP(sourceFileStream, targetFileStream);

            }

        }

    }

    catch

    {

        return -1L;

    }

}

 

#endregion

 

#region GZIP 압축 해제하기 - DecompressGZIP(sourceByteArray)

 

/// <summary>

/// GZIP 압축 해제하기

/// </summary>

/// <param name="sourceByteArray">소스 바이트 배열</param>

/// <returns>압축 해제 바이트 배열</returns>

public byte[] DecompressGZIP(byte[] sourceByteArray)

{

    try

    {

        using(MemoryStream sourceMemoryStream = new MemoryStream(sourceByteArray))

        {

            using(MemoryStream targetMemoryStream = new MemoryStream())

            {

                if(DecompressGZIP(sourceMemoryStream, targetMemoryStream) == -1)

                {

                    return null;

                }

 

                return targetMemoryStream.ToArray();

            }

        }

    }

    catch

    {

        return null;

    }

}

 

#endregion

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요