푸터 콘텐츠로 바로가기
IRONZIP 사용

C#에서 ZIP 파일을 여는 방법

ZIP은 손실 없는 데이터 압축을 지원하는 아카이브 항목 파일 시스템 형식입니다. ZIP 파일에는 압축된 하나 이상의 파일이나 디렉터리가 포함될 수 있습니다. ZIP 파일 형식은 여러 압축 알고리즘을 허용하지만, DEFLATE가 가장 일반적입니다. ZIP 형식은 곧 여러 소프트웨어 유틸리티로 지원되었습니다. 주요 OS 제공업체는 오랫동안 ZIP 아카이브 지원을 포함해 왔습니다. Microsoft는 Windows 98부터 ZIP 파일 지원을 포함했으며 나머지도 뒤따랐습니다.

이번 블로그에서는 IronZIP을 사용하여 ZIP 아카이브 파일이나 압축된 파일을 여는 현대적이며 쉬운 방법을 살펴보겠습니다. ZIP 파일에 대해 일반적으로 이해하고 그 장점을 배워보겠습니다. 그런 다음, ZIP 파일 형식 작업을 위한 시스템 네임스페이스에서 사용할 수 있는 옵션을 살펴보겠습니다. 다음으로는 ZIP 파일을 열고, 임시 폴더에 압축을 풀고, 새 ZIP 파일을 만들고, 기존 ZIP 파일에 파일을 추가하는 방법에 대한 단계별 지침을 살펴보겠습니다.

소프트웨어 응용 프로그램에서 ZIP 파일 사용의 장점

  1. 압축: Implode, Deflate, Deflate64, bzip2, LZMA, WavPack, PPMd 등 다양한 압축 알고리즘을 사용하여 아카이브된 파일/폴더 크기를 줄입니다.
  2. 전송 시간 감소: 파일 크기가 작아지면서 전송 시간이 빨라집니다. 특히 인터넷을 통해 파일을 보낼 때 유리합니다. 이는 이메일 첨부 파일 및 웹사이트에서 파일 업로드나 다운로드 시 특히 유리합니다.
  3. 파일 통합: ZIP 파일은 여러 파일을 하나의 아카이브로 통합하여 관리해야 할 파일 수를 줄입니다. 이는 여러 파일로 구성된 프로젝트를 조직하거나 소프트웨어를 배포할 때 유용합니다.
  4. 암호 보호: 많은 ZIP 유틸리티는 아카이브를 암호로 보호하는 옵션을 제공하여 파일에 보안 레이어를 추가합니다. 이는 ZIP 파일의 내용에 대한 접근을 제한하고자 할 때 유용합니다.

IronZIP을 사용하여 ZIP 아카이브 생성 및 ZIP 파일 추출

IronZIP 라이브러리 소개 및 문서는 여기에서 찾을 수 있습니다. C# 응용 프로그램에서는 다양한 방식으로 ZIP 파일을 생성하고 추출할 수 있습니다. IronZIP NuGet 패키지는 다양한 포맷으로 파일을 아카이브하기 위한 모든 기능을 가지고 있습니다: ZIP, TAR, GZIP 및 BZIP2. 아래는 최신 응용 프로그램 프로그래밍에서 IronZIP을 사용하여 다음 세대 앱을 구축하고 ZIP 파일을 열고, ZIP 파일을 추출하고, 새로운 ZIP 파일을 생성하는 방법에 대한 샘플 단계입니다.

Step 1. .NET Core 콘솔 응용 프로그램 생성

프로젝트 생성

.NET 콘솔 앱은 Visual Studio를 사용하여 생성할 수 있습니다. Visual Studio를 열고 프로젝트 생성을 선택합니다. 여러 템플릿을 사용하여 프로젝트를 생성할 수 있습니다. 코드를 시연하거나 테스트하는 가장 쉬운 방법은 콘솔 응용 프로그램을 생성하는 것입니다. 콘솔 앱 프로젝트 템플릿을 선택할 것입니다.

C#에서 ZIP 파일을 여는 방법: 그림 1 - 새 프로젝트

프로젝트 이름 입력

아래 창에서는 파일 시스템에 저장할 프로젝트 이름, 프로젝트 위치, 솔루션 폴더 경로를 입력할 수 있습니다. 솔루션과 프로젝트 폴더를 동일하게 유지하거나 다른 폴더에 둘 수 있습니다.

C#에서 ZIP 파일을 여는 방법: 그림 2 - 프로젝트 구성

.NET Framework 버전 선택

다음 단계는 프로젝트에 대한 .NET Framework 버전을 선택하는 것입니다. 특정 버전으로 개발하고 싶다면 원하는 버전을 지정하세요. 그렇지 않으면 항상 최신 안정 버전을 선택하여 프로젝트를 생성하세요. 최신 버전은 Microsoft 웹사이트에서 다운로드할 수 있습니다. 그런 다음 생성 버튼을 클릭하여 콘솔 응용 프로그램을 생성합니다.

C#에서 ZIP 파일을 여는 방법: 그림 3 - 대상 프레임워크

이렇게 하면 템플릿에서 기본 프로젝트가 생성되고 지정된 디렉터리에 프로젝트 및 솔루션 파일이 저장됩니다. 프로젝트가 생성되면 아래와 유사하게 보일 것입니다. 최신 버전에서는 program.cs에서 클래스가 사용되지 않는 경우가 있습니다.

// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
$vbLabelText   $csharpLabel

System.IO.Compression을 사용하여 기본 라이브러리에서 새로운 ZIP 파일을 생성하고 ZIP 아카이브 파일을 모두 추출할 수 있습니다. 다음 코드는 ZIP 파일을 열거나 추출하기 위해 ZipFile.OpenReadZipFile.Open 정적 메서드를 사용하는 방법을 보여줍니다.

// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
$vbLabelText   $csharpLabel

위의 코드에서, myFile.zip라는 이름의 ZIP 파일이 시스템 네임스페이스와 함께 사용됩니다. Open 메서드는 지정된 모드로 ZIP 파일을 여는 데 사용됩니다. 이는 새로운 ZIP 아카이브 파일을 생성하는 데도 사용할 수 있습니다. 일단 열리면, AddEntry 메서드를 사용하여 새 아카이브 항목을 추가하고, ExtractToDirectory로 ZIP 아카이브 파일을 지정된 디렉토리에 추출할 수 있습니다. 디렉토리가 존재하지 않으면 Directory.CreateDirectory를 사용하여 생성됩니다.

단계 2. NuGet 패키지 관리자를 사용하여 IronZIP 설치하기

Visual Studio에서 프로젝트 관리자를 열고 IronZIP 패키지를 검색합니다. 그런 다음 최신 버전을 선택하고 설치를 클릭합니다. 설치할 버전을 드롭다운에서 변경할 수 있습니다. 그런 다음 설치를 클릭합니다.

C#에서 ZIP 파일을 여는 방법: 그림 4 - NuGet 패키지 관리자

IronZIP을 사용하여 ZIP 보관 파일 만들고 파일 추가하기

C#에서 ZIP 파일을 여는 방법: 그림 5 - IronZIP

IronZIPIron Software에서 개발한 압축 및 해제 라이브러리입니다. 널리 사용되는 ZIP 형식 외에도 TAR, GZIP 및 BZIP2도 처리할 수 있습니다.

IronZIP은 정확성, 사용 용이성, 속도를 우선시하는 C# ZIP 보관 라이브러리입니다. 사용자 친화적인 API로 개발자가 현대 .NET 프로젝트에 몇 분 안에 아카이브 기능을 쉽게 추가할 수 있습니다.

IronZIPSystem.IO.Compression 라이브러리에 비해 많은 이점을 제공합니다. 압축 중에 원하는 압축 비율을 지정할 수 있으며 ZIP, TAR, GZIP, BZIP2와 같은 다양한 압축 알고리즘을 사용할 수 있습니다. 모바일, 웹, 데스크탑 플랫폼 및 다양한 .NET 버전도 지원합니다.

// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
$vbLabelText   $csharpLabel

초기 소스 코드는 ZIP 보관 파일 이름을 지정하고 지정된 디렉터리가 존재하는지 확인하여 설정됩니다. 그런 다음 Add 메서드를 사용하여 파일을 아카이빙하여 ZIP 파일을 생성합니다. 압축 매개 변수의 두 번째 매개 변수는 낮을 경우 1, 높을 경우 9입니다. 텍스트 파일은 손실 없이 9로 최대 압축할 수 있으며, 이미지 파일은 데이터 손실을 방지하기 위해 낮은 압축을 사용할 수 있습니다.

IronZIP을 사용하여 ZIP 보관 파일 열기

IronArchive 클래스는 ZIP 아카이브 파일에서 파일을 추출하는 데 사용할 수 있습니다. IronArchive.ExtractArchiveToDirectory를 사용하여 모든 파일이 추출되며, 아래와 같은 특정 디렉토리에 파일을 추출하는 데 도움이 됩니다.

// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
$vbLabelText   $csharpLabel

위의 코드는 ZIP 파일을 디렉터리로 추출합니다. 코드에서는 디렉터리가 존재하는지 검사하며, 없으면 ZIP 보관 파일이 지정된 디렉터리로 추출됩니다.

라이센스 (무료 체험 가능)

위의 코드가 작동하려면 라이선스 키가 필요합니다. 이 키는 appsettings.json에 배치해야 합니다.

{
    "IronZip.LicenseKey": "your license key"
}

개발자는 이 여기에서 등록 후 체험판 라이선스를 받을 수 있으며, 체험판 라이선스에는 신용카드가 필요하지 않습니다. 이메일 ID를 제공하여 무료 체험에 등록할 수 있습니다.

기존 ZIP 보관 파일에 파일 추가하기

IronZIP의 정적 FromFile 메서드를 사용하여 기존 아카이브를 엽니다. 이 메서드는 또한 출력으로 생성될 새 아카이브의 파일 이름을 지정해야 합니다.

// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
$vbLabelText   $csharpLabel

코드는 IronArchive.FromFile 정적 메서드를 사용하여 기존 ZIP 파일을 열고 새 파일을 아카이브 항목으로 추가합니다. 파일 객체가 삭제되면 업데이트된 아카이브가 성공적으로 저장됩니다.

업데이트

IronZIP 라이브러리는 고객/사용자의 의견에 따라 지속적으로 업데이트되며, 모든 업데이트는 여기에서 찾을 수 있습니다.

결론

결론적으로, ZIP 파일 프로그래밍은 클라우드 호스트 제공자가 스토리지 및 데이터 전송 비용을 부과하는 현대적인 애플리케이션 개발에서 구축할 필수 기술입니다. 이 기술을 알면 프로그래머가 애플리케이션 비용을 줄이고 애플리케이션 성능을 향상시킬 수 있습니다.

설치 단계를 따르고 제공된 코드 예제를 탐색함으로써 개발자는 IronZIP의 힘을 쉽게 활용하여 ZIP 작업을 처리할 수 있습니다. 더 많은 애플리케이션이 현대화되고 클라우드로 이동함에 따라 신뢰할 수 있는 ZIP 라이브러리인 IronZIP을 보유하는 것은 C# 개발자가 현대 애플리케이션 개발의 요구를 충족시킬 도구를 갖추게 됩니다. IronZIP의 힘을 받아들이고 C# 애플리케이션에서 ZIP 파일 작업을 위한 새로운 가능성을 열어보세요.

IronZIP은 개발자에게 광범위한 지원을 제공합니다. C#용 IronZIP이 어떻게 작동하는지 더 많은 정보를 얻으려면 여기를 방문하십시오. IronZIPIronZIP의 기능을 알 수 있는 좋은 기회인 무료 체험 라이선스를 제공합니다.

Iron Software는 다양한 다른 라이브러리를 보유하고 있으며, 이를 탐색하여 더 많은 지식을 얻고 현대 애플리케이션을 프로그래밍/개발할 수 있는 기술을 업데이트하세요.

자주 묻는 질문

C#에서 ZIP 파일을 어떻게 열 수 있나요?

C#에서 System.IO.Compression 라이브러리를 사용하면 ZIP 파일을 열 수 있습니다. 또는 IronZIP 사용하면 ZIP 파일 처리를 위한 고급 기능을 제공하여 아카이브를 더욱 쉽고 효율적으로 관리할 수 있습니다.

C#을 사용하여 ZIP 압축 파일에서 파일을 추출하는 방법은 무엇인가요?

IronZIP 사용하면 IronArchive.ExtractArchiveToDirectory 메서드를 통해 ZIP 압축 파일에서 파일을 추출할 수 있습니다. 이 메서드는 ZIP 파일과 압축 해제할 대상 디렉터리를 지정해야 합니다.

애플리케이션 개발에서 ZIP 파일을 사용하는 이점은 무엇입니까?

ZIP 파일은 파일 크기를 줄여 전송 속도를 높이고 여러 파일을 하나의 압축 파일로 통합할 수 있도록 해줍니다. IronZIP 압축률 지정 및 다양한 파일 형식 지원과 같은 추가 기능을 통해 이러한 장점을 더욱 향상시킵니다.

C#에서 기존 ZIP 압축 파일에 파일을 추가하는 방법은 무엇인가요?

IronZIP 사용하여 기존 ZIP 압축 파일에 파일을 추가하려면 IronArchive.FromFile 메서드를 사용하여 압축 파일을 열고, Add 메서드를 사용하여 새 파일을 추가합니다. 마지막으로 업데이트된 압축 파일을 저장하면 과정이 완료됩니다.

IronZIP 사용하여 새 ZIP 파일을 만들고 그 안에 파일을 추가할 수 있나요?

네, IronZIP 사용하면 압축 파일 경로를 지정하고 Add 메서드를 사용하여 파일을 추가함으로써 새 ZIP 파일을 만들 수 있습니다. 그런 다음 SaveAs 메서드를 사용하여 압축 파일을 저장합니다.

NuGet 패키지 관리자를 사용하여 IronZIP 설치하려면 어떻게 해야 하나요?

NuGet 패키지 관리자를 통해 IronZIP 설치하려면 Visual Studio에서 프로젝트 관리자를 열고 IronZIP 검색한 다음 최신 버전을 선택하고 설치를 클릭합니다. 이렇게 하면 IronZIP 프로젝트에 추가되어 ZIP 파일 관리가 가능해집니다.

IronZIP 여러 압축 형식을 지원합니까?

네, IronZIP ZIP, TAR, GZIP, BZIP2를 포함한 다양한 압축 형식을 지원하여 다양한 애플리케이션 요구 사항에 맞는 유연성을 제공합니다.

IronZIP 무료 체험판이 있나요?

네, IronZIP 개발자를 위한 무료 평가판을 제공합니다. Iron Software 웹사이트에 등록하시면 신용 카드 정보 없이 평가판을 이용하실 수 있습니다.

IronZIP 최신 애플리케이션 개발에 적합한 선택인 이유는 무엇일까요?

IronZIP 사용 편의성, 속도 및 크로스 플랫폼 호환성으로 잘 알려져 있습니다. 이러한 특징과 고급 기능 덕분에 IronZIP은 최신 애플리케이션 개발에 이상적인 선택입니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me