파일 압축하기 코드
class Program
{
static void Main(string[] args)
{
Console.WriteLine("== Hello World ==");
try
{
// 1. 압축할 폴더 생성
var directoryName = @"D:\ZipTest\" + "NewZip";
System.IO.Directory.CreateDirectory(directoryName);
// 복사할 파일 이름
var fileList = new List<string>
{
"testfile1.txt",
"testfile2.txt"
};
foreach (var fileName in fileList)
{
// 원본 파일 위치
var sourceFile = System.IO.Path.Combine(@"D:\ZipTest", fileName);
// 파일 이동할 곳
var destFile = System.IO.Path.Combine(directoryName, fileName);
// 1. 압축할 폴더로 데이터 복사
System.IO.File.Copy(sourceFile, destFile, true);
}
// .zip 파일 패스
var zipPath = directoryName + ".zip";
// 특정 폴더, .zip으로 압축
ZipFile.CreateFromDirectory(directoryName, zipPath);
// 압축 끝난 폴더 삭제
System.IO.Directory.Delete(directoryName, true);
Console.WriteLine("파일 압축이 끝났습니다.");
}
catch (Exception e)
{
Console.WriteLine(e.Message.ToString());
Console.WriteLine(e.StackTrace.ToString());
}
Console.ReadLine();
}
}
로직 설명
1. 원본 폴더에서 압축할 파일들을 복사해올 폴더를 생성한다.
var directoryName = @"D:\ZipTest\" + "NewZip";
System.IO.Directory.CreateDirectory(directoryName);
2. 압축할 파일 이름을 리스트로 만든다.
만약 하나라면 굳이 리스트로 만들 필요가 없다.
var fileList = new List<string>
{
"testfile1.txt",
"testfile2.txt"
};
3. 압축할 파일들을 1.에서 만들어준 폴더로 복사한다.
foreach (var fileName in fileList)
{
// 원본 파일 위치
var sourceFile = System.IO.Path.Combine(@"D:\ZipTest", fileName);
// 파일 이동할 곳
var destFile = System.IO.Path.Combine(directoryName, fileName);
// 1. 압축할 폴더로 데이터 복사
System.IO.File.Copy(sourceFile, destFile, true);
}
4. zip 파일 이름 설정 후 1에서 만든 폴더를 압축한다.
// .zip 파일 패스
var zipPath = directoryName + ".zip";
// 특정 폴더, .zip으로 압축
ZipFile.CreateFromDirectory(directoryName, zipPath);
5. 압축이 끝난 1에서 만든 폴더를 삭제한다.
왜냐면 내가 필요한것이 .zip 파일이기 때문
// 압축 끝난 폴더 삭제
System.IO.Directory.Delete(directoryName, true);
Console.WriteLine("파일 압축이 끝났습니다.");
결과
반응형
'프로그래밍 > C#' 카테고리의 다른 글
[C#] Nested transactions are not supported. (0) | 2021.06.07 |
---|---|
[C#] localIP / public IP 가져오기 (0) | 2021.03.23 |
[C#] MD5 암호화 (0) | 2020.09.03 |
Dapper 사용시 key/explicitKey (0) | 2020.01.03 |
GetLocalIP() (0) | 2019.11.13 |
댓글