일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SERIAL
- stream
- mfc
- compare
- Binary
- digitalRead
- parameter
- Android
- java
- sensor
- Pointer
- Unity
- public
- length
- preprocessing
- Contour
- UNO
- aduino
- flutter
- Barcode
- memory
- Encapusulation
- file access
- Class
- Read
- Overloading
- inheritance
- wpf
- atmega328
- APP
- Today
- Total
폴크(FOLC)
C# 테크닉 - Zip 파일 생성( SharpZipLib ) 본문
C# 테크닉 - Zip 파일 생성( SharpZipLib )
folcjin 2021. 12. 6. 20:59# 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();
}
'C#, WF, WPF(.NET) > C#, WF, WPF(.NET) 테크닉' 카테고리의 다른 글
C# 테크닉 - TimeCheck ( QPC ) (0) | 2021.12.07 |
---|---|
C# 테크닉 - UnZip 파일 복원 ( SharpZipLib ) (0) | 2021.12.06 |
C# 테크닉 - FTP FileDownload ( WebRequest ) (0) | 2021.12.05 |
C# 테크닉 - FTP FileUpload ( WebRequest ) (0) | 2021.12.05 |
C# 테크닉 - 파일 제어( CSV format ) (0) | 2021.12.04 |