반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

폴크(FOLC)

C# 테크닉 - Zip 파일 생성( SharpZipLib ) 본문

C#, WF, WPF(.NET)/C#, WF, WPF(.NET) 테크닉

C# 테크닉 - Zip 파일 생성( SharpZipLib )

folcjin 2021. 12. 6. 20:59
728x90
반응형

# Local 폴더를 Zip 파일로 생성
   > SharpZipLib 라이브러리 이용

# Nuget 에서 SharpZipLib 설치

 

# 소스 코드
using System.IO;
using ICSharpCode.SharpZipLib.Zip;

public void MakeZipFileWithCompress(string src_path, string dst_path)
{
    DirectoryInfo src_dir_info = new DirectoryInfo(src_path);
    if (src_dir_info.Exists == false)
        return;

    FileStream dst_file_stream = new FileStream(dst_path, FileMode.Create);
    ZipOutputStream zip_strm = new ZipOutputStream(dst_file_stream);
    zip_strm.SetComment(src_path);
    zip_strm.SetLevel(9);

    byte[] databufferArray = new byte[1024];

    foreach (FileInfo src_file_info in src_dir_info.GetFiles("*.*", SearchOption.AllDirectories))
    {
        string src_file_name = src_file_info.FullName.Substring(src_dir_info.FullName.Length + 1);
        zip_strm.PutNextEntry(new ZipEntry(src_file_name));

        using (FileStream src_file_stream = src_file_info.OpenRead())
        {
            while (true)
            {
                int datacount = src_file_stream.Read(databufferArray, 0, databufferArray.Length);
                if (datacount == 0)
                {
                    break;
                }

                zip_strm.Write(databufferArray, 0, datacount);
            }
        }

        zip_strm.CloseEntry();
    }

    zip_strm.Finish();
    zip_strm.Close();
}

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --