CGZipLibrary를 이용하여 ASP에서 파일 압축 및 압축 해제하기
ASP/TIP 2009. 1. 13. 16:22가끔 ASP로 작업을 하다보면 파일을 압축하거나 압축해제를 해야하는 경우가 생깁니다. 그런데 ASP에서는 이런 기능을 제공하지 않기 때문에 서버용 콤포넌트를 개발해서 사용해야됩니다.
일반개발자들이 이런 서버용 콤포넌트를 개발하기란 쉽지 않습니다. 그래서 몇 군데 자료를 찾다가 괜찮은 압축처리 콤포넌트를 찾아 소개합니다.
레지스터리에 등록하는 방법은 다음과 같습니다.
시작 > 실행을 눌러서 열기항목에 regsvr32 [CGZipLibrary.dll 이 있는 폴더경로]\CGZipLibrary.dll 라고 입력하고 엔터를 누릅니다.
예를 들어서 C:\Windows\System32 폴더에 CGZipLibrary.dll 파일이 있다면
regsvr32 C:\Windows\System32\CGZipLibrary.dll
라고 입력해서 등록합니다.
ASP에서 압축 및 압축해제 처리하는 예제 소스는 아래와 같습니다.
[ASP 소스 예제]
<% '===================================================== ' 압축 '===================================================== Dim oZip Set oZip = Server.CreateObject("CGZipLibrary.CGZipFiles") ' 압축할 파일을 추가합니다. oZip.AddFile "C:\Inetpub\wwwroot\default.asp" oZip.AddFile "C:\Inetpub\wwwroot\test.txt" ' 이렇게하면 폴더안의 모든파일/폴더 압축합니다. 'oZip.AddFile "C:\Inetpub\wwwroot\*.*" ' 압축 파일 이름을 지정합니다. oZip.ZipFileName = "C:\Inetpub\wwwroot\ziptest\test.zip" oZip.UpdatingZip = False ' 오류가 발생하면 오류 내용을 출력합니다. If oZip.MakeZipFile <> 0 Then Response.Write(oZip.GetLastMessage) End If Set oZip = Nothing '===================================================== ' 압축 해제 '===================================================== Dim oUnZip Set oUnZip = Server.CreateObject("CGZipLibrary.CGUnzipFiles") ' 압축파일이름을 지정합니다. oUnZip.ZipFileName = "C:\Inetpub\wwwroot\ziptest\test.zip" ' 압축파일 내용을 풀 경로를 지정합니다. oUnZip.ExtractDir = "C:\Inetpub\wwwroot\ziptest\extractfolder" ' 오류가 발생하면 오류 내용을 출력합니다. If oUnZip.Unzip <> 0 Then Response.Write(oUnZip.GetLastMessage) End If Set oUnZip = Nothing %>참고한 정보들 입니다.
코드구루 zip/unzip 관련 글
http://www.codeguru.com/vb/gen/vb_graphics/fileformats/article.php/c6743/
위의 url에서 압축관련 모듈을 다운받으면 VB에서 실행해볼 수 있습니다. 압축풀면GZipLibrary.dll 파일이있는데 여기에 올린 파일은 코드구루에 있는 CGZipLibrary.dll 파일이 아주 조금 틀립니다. 코드구루의CGZipLibrary.dll 은 압축할때 디렉토리 경로까지 압축을 합니다.
원본 소스를 수정한 내용은 CGZipFiles.cls 파일에서 MakeZipFile 함수를 보면 iIgnorePath 부분 변수 사용한곳이있는데그곳의 값을 '1' 로 수정한후 재컴파일 하였습니다.
이 값은 0 과 1 두가지 옵션이 있는데 '0' 일 경우 디렉토리 경로까지 압축하고'1' 일경우엔 경로무시합니다.