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

IronZIP 사용한 .NET MAUI 데이터 추출 SDK

.NET MAUI, 또는 .NET Multi-platform App UI는 크로스 플랫폼 애플리케이션을 구축하기 위한 프레임워크입니다. 개발자가 Windows, macOS, iOS, Android 및 기타 장치에서 실행되는 단일 코드베이스로 애플리케이션을 만들 수 있도록 합니다. React Native와 유사하지만, JavaScript 대신 C#을 사용합니다.

.NET MAUI를 사용하면 C# 개발자가 단일 환경에서 문제 없이 모바일 애플리케이션 및 데스크탑 앱을 구축할 수 있습니다. Microsoft .NET MAUI는 개발자가 앱 개발 프로세스를 간소화하고 최적화할 수 있도록 포괄적인 문서 및 리소스를 제공합니다.

이 글에서는 강력한 C# ZIP 압축 라이브러리인 IronZIP .NET MAUI 와 통합하여 데이터를 추출하는 방법을 살펴보겠습니다.

ZIP 아카이브에서 데이터 추출 방법

  1. Visual Studio .NET MAUI 프로젝트 생성
  2. NuGet을 사용하여 C# Zip 라이브러리 설치
  3. 데이터 추출 앱 인터페이스 디자인
  4. Create Zip 및 Extract Zip 메서드 구현
  5. 애플리케이션 실행 및 결과 확인

IronZIP 소개

IronZIP은 .NET에서 아카이브를 생성, 읽기 및 추출하는 데 설계된 포괄적인 C# ZIP 아카이브 라이브러리입니다. ZIP, TAR, GZIP, BZIP2를 포함한 다양한 아카이브 형식을 지원합니다. IronZIP은 .NET 7, 6, 5, Core, Standard 및 Framework와 같은 다양한 .NET 버전과 호환됩니다.

크로스 플랫폼으로, Windows, Linux, Mac, iOS, Android, Docker, Azure 및 AWS에서 실행되는 C#, F#, VB.NET 애플리케이션에 적합합니다.

IronZIP의 주요 기능은 다음과 같습니다:

  • 다양한 운영 체제에 대한 크로스 플랫폼 지원.
  • 다양한 .NET 버전 및 프로젝트 유형과 호환성.
  • ZIP, TAR, GZIP, BZIP2 아카이브 생성, 읽기 및 추출 지원.
  • 다중 플랫폼 애플리케이션 for .NET MAUI와의 통합.

필수 조건

시작하기 전에 다음 필수 조건을 확인하세요:

  1. .NET MAUI 작업로드가 설치된 Visual Studio.
  2. IronZIP 라이브러리가 .NET MAUI 프로젝트에 추가되었습니다.

Visual Studio에서 .NET MAUI 애플리케이션 생성 단계

  1. Visual Studio를 열고 '새 프로젝트 만들기'를 클릭하세요.
  2. .NET MAUI 앱 프로젝트 템플릿을 선택하고 '다음'을 클릭하세요.

    .NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 1

  3. 프로젝트 설정, 프로젝트 이름 및 위치를 구성하세요. 다음을 클릭합니다.

    .NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 2

  4. 추가 정보를 통해 올바른 .NET Framework를 선택하세요. IronZIP는 최신 버전의 .NET Framework를 지원하므로 이를 선택할 수 있습니다.

    .NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 3

  5. IronZIP 라이브러리를 사용하여 Zip 데이터 추출 for .NET MAUI 앱을 생성하려면 'Create'를 클릭하세요.

IronZIP 설치

.NET MAUI 프로젝트에 IronZIP을 통합하려면 다음 단계를 따르세요:

  1. View에서 Solution Explorer를 엽니다.

    .NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 4

  2. Solution Explorer에서 프로젝트를 오른쪽 클릭합니다.
  3. "Manage NuGet Packages for Solution"을 선택합니다.

    .NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 5

  4. NuGet 탐색 탭에서 "IronZIP"을 검색하여 프로젝트에 패키지를 설치합니다.

    .NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 6

  5. 미리보기 변경 사항 대화 상자에서 'Apply'를 클릭하여 변경 사항을 적용한 후 IronZIP 라이선스를 수락하려면 'Accept'를 클릭합니다.
  6. NuGet 설치가 완료되며 확인 메시지가 나타납니다.

이제 모든 것이 설치되고 설정되어 있으니, .NET MAUI에서 Zip 추출기를 생성하는 데이터 추출 작업으로 이동해봅시다.

Zip 추출기 생성 단계

단계 1: 앱의 인터페이스 설계

이 섹션에서는 .NET MAUI 애플리케이션의 사용자 인터페이스 설계에 중점을 둡니다. 프로젝트 폴더에서 MainPage.xaml 파일을 열고 사용자 친화적인 인터페이스를 생성하기 위해 필요한 XAML 코드를 추가합니다.

여기서는 zip 파일 생성을 위한 버튼 하나와 zip 파일 추출을 위한 버튼 하나, 총 두 개의 버튼이 필요합니다. 적절한 메시지를 제공하기 위해 몇 가지 레이블도 필요합니다. 다음 코드 예제는 설계의 XAML 코드를 보여줍니다:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiAppDataExtraction.MainPage">
    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Label
                Text="IronZIP - A Zip Library to Create and Extract Zip Content!"
                SemanticProperties.HeadingLevel="Level1"
                FontSize="32"
                HorizontalOptions="Center" />
            <Label
                Text="Welcome to .NET Multi-platform App UI"
                SemanticProperties.HeadingLevel="Level2"
                SemanticProperties.Description="Welcome to dot net Multi platform App U I"
                FontSize="18"
                HorizontalOptions="Center" />
            <Button
                x:Name="OpenFileBtn"
                Text="Extract Zip File"
                SemanticProperties.Hint="Opens the File Picker"
                Clicked="OnSelectFileButtonClicked"
                HorizontalOptions="Center" />
            <Button
                 x:Name="OpenFilesBtn"
                 Text="Create Zip"
                 SemanticProperties.Hint="Opens the File Picker"
                 Clicked="OnSelectFilesButtonClicked"
                 HorizontalOptions="Center" />  
        </VerticalStackLayout>
    </ScrollView>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiAppDataExtraction.MainPage">
    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Label
                Text="IronZIP - A Zip Library to Create and Extract Zip Content!"
                SemanticProperties.HeadingLevel="Level1"
                FontSize="32"
                HorizontalOptions="Center" />
            <Label
                Text="Welcome to .NET Multi-platform App UI"
                SemanticProperties.HeadingLevel="Level2"
                SemanticProperties.Description="Welcome to dot net Multi platform App U I"
                FontSize="18"
                HorizontalOptions="Center" />
            <Button
                x:Name="OpenFileBtn"
                Text="Extract Zip File"
                SemanticProperties.Hint="Opens the File Picker"
                Clicked="OnSelectFileButtonClicked"
                HorizontalOptions="Center" />
            <Button
                 x:Name="OpenFilesBtn"
                 Text="Create Zip"
                 SemanticProperties.Hint="Opens the File Picker"
                 Clicked="OnSelectFilesButtonClicked"
                 HorizontalOptions="Center" />  
        </VerticalStackLayout>
    </ScrollView>
</ContentPage>
XML

애플리케이션을 실행하면 화면에 일반적인 Windows 폼으로 출력이 표시됩니다.

.NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 7

단계 2: 코드 구현

1. Zip 생성

MainPage.xaml.cs 파일을 열어 "Create Zip" 기능을 구현합니다. OnSelectFilesButtonClicked 메서드를 구현하여 FilePicker를 열고 zip 파일을 생성하기 위해 여러 유형의 파일을 선택할 수 있도록 합니다.

그런 다음 선택한 파일에서 모든 경로의 목록을 만듭니다. 마지막으로 CreateZip 메서드에 전달하여 IronZIP이 모든 파일 경로를 사용하여 순식간에 zip 파일을 생성하도록 합니다.

다음 코드 예제는 이 작업을 수행하는 방법을 보여줍니다.

private async void OnSelectFilesButtonClicked(object sender, EventArgs e)
{
    try
    {
        var status = await Permissions.RequestAsync<Permissions.StorageRead>();
        if (status != PermissionStatus.Granted)
        {
            await DisplayAlert("Alert!", "Storage Access Denied", "Ok");
            return;
        }
        // Select multiple files of any type
        var results = await FilePicker.PickMultipleAsync();
        if (results != null)
        {
            var selectedFilePaths = new List<string>();
            foreach (var file in results)
            {
                // Add file full path to the list one by one
                selectedFilePaths.Add(file.FullPath);
            }
            CreateZip(selectedFilePaths);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error: {ex.Message}");
    }
}
private async void OnSelectFilesButtonClicked(object sender, EventArgs e)
{
    try
    {
        var status = await Permissions.RequestAsync<Permissions.StorageRead>();
        if (status != PermissionStatus.Granted)
        {
            await DisplayAlert("Alert!", "Storage Access Denied", "Ok");
            return;
        }
        // Select multiple files of any type
        var results = await FilePicker.PickMultipleAsync();
        if (results != null)
        {
            var selectedFilePaths = new List<string>();
            foreach (var file in results)
            {
                // Add file full path to the list one by one
                selectedFilePaths.Add(file.FullPath);
            }
            CreateZip(selectedFilePaths);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error: {ex.Message}");
    }
}
$vbLabelText   $csharpLabel

다음으로, CreateZip 메서드를 구현합니다. IronZIP의 IronArchive 클래스는 zip 파일을 생성할 경로를 받습니다. 선택된 각 파일 경로를 반복하여 Add 메서드를 통해 zip 파일에 추가합니다.

파일이 추가되면 DisplayAlert을 사용하여 확인 메시지가 표시됩니다.

private async void CreateZip(List<string> selectedFilePaths)
{
    var path = "E:\\output.zip";
    // Create a Zip
    using (var archive = new IronArchive(path))
    {
        // Add files to the ZIP
        foreach (var file in selectedFilePaths)
        {
            archive.Add(file);
        }
    }
    await DisplayAlert("Congratulations", "All files added to " + path, "Ok");
}
private async void CreateZip(List<string> selectedFilePaths)
{
    var path = "E:\\output.zip";
    // Create a Zip
    using (var archive = new IronArchive(path))
    {
        // Add files to the ZIP
        foreach (var file in selectedFilePaths)
        {
            archive.Add(file);
        }
    }
    await DisplayAlert("Congratulations", "All files added to " + path, "Ok");
}
$vbLabelText   $csharpLabel

기존 zip 파일에 파일을 추가하고 zip을 추출하는 방법에 대한 자세한 정보는 튜토리얼 페이지를 참조하세요.

2. Zip 추출

이제, "Extract Zip" 기능을 생성할 것입니다. 다시, MainPage.xaml.cs 파일에서 OnSelectFileButtonClicked 메서드를 구현하여 FilePicker를 열고 추출을 위해 단일 zip 파일을 선택할 수 있도록 합니다.

선택한 파일의 전체 경로를 문자열 변수에 설정하고 ExtractZip 메서드에 전달하여 IronZIP이 추출을 수행합니다. 코드는 다음과 같습니다.

private async void OnSelectFileButtonClicked(object sender, EventArgs e)
{
    try
    {
        var status = await Permissions.RequestAsync<Permissions.StorageRead>();
        if (status != PermissionStatus.Granted)
        {
            await DisplayAlert("Alert!", "Storage Access Denied", "Ok");
            return;
        }
        // Select a single file of any type
        var result = await FilePicker.PickAsync();
        if (result != null)
        {
            // Add File Full Path to the list one by one
            var selectedFile = result.FullPath;
            ExtractZip(selectedFile);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error: {ex.Message}");
    }
}
private async void OnSelectFileButtonClicked(object sender, EventArgs e)
{
    try
    {
        var status = await Permissions.RequestAsync<Permissions.StorageRead>();
        if (status != PermissionStatus.Granted)
        {
            await DisplayAlert("Alert!", "Storage Access Denied", "Ok");
            return;
        }
        // Select a single file of any type
        var result = await FilePicker.PickAsync();
        if (result != null)
        {
            // Add File Full Path to the list one by one
            var selectedFile = result.FullPath;
            ExtractZip(selectedFile);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error: {ex.Message}");
    }
}
$vbLabelText   $csharpLabel

다음으로, ExtractZip 메서드를 생성합니다. 이 메서드에서 파일을 추출할 출력 폴더의 경로를 설정합니다.

IronZIP의 ExtractArchiveToDirectory 메서드를 사용하여 선택한 파일 경로와 출력 경로를 전달합니다. 이 메서드는 zip의 모든 파일을 출력 폴더로 매끄럽게 변환하고 전송합니다. 마지막으로, 성공적인 추출시 확인 메시지가 표시됩니다.

코드는 다음과 같습니다.

private async void ExtractZip(string selectedFilePath)
{
    var path = "E:\\Extracted Files";
    IronArchive.ExtractArchiveToDirectory(selectedFilePath, path);
    await DisplayAlert("Congratulations", "All files extracted to " + path, "Ok");
}
private async void ExtractZip(string selectedFilePath)
{
    var path = "E:\\Extracted Files";
    IronArchive.ExtractArchiveToDirectory(selectedFilePath, path);
    await DisplayAlert("Congratulations", "All files extracted to " + path, "Ok");
}
$vbLabelText   $csharpLabel

단계 3: 애플리케이션 실행

IronZIP과 함께 코드를 성공적으로 통합한 후 애플리케이션을 빌드하고 실행하여 데이터 추출 작업을 수행합니다. zip 파일을 생성하고 zip 파일에서 파일을 추출하여 기능을 테스트합니다.

지정된 디렉터리에서 출력 및 추출된 파일을 확인하여 결과를 검증합니다.

단계 4: 결과 검증

1. Zip 생성 테스트

먼저 zip 파일을 생성해 보겠습니다. Create Zip 버튼을 클릭하면 파일 대화 상자가 나타납니다. 여러 개 또는 단일 파일을 선택하여 zip에 추가할 수 있습니다.

.NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 8

열기 버튼을 클릭하면 파일이 성공적으로 output.zip에 추가되었다는 확인 메시지가 나타납니다.

.NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 9

output.zip 파일로 이동하여 내용을 보면, 추가한 모든 파일을 볼 수 있습니다.

.NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 10

2. Zip 추출 테스트

이제 zip 파일을 추출해 봅시다. Extract Zip 버튼을 클릭하면 파일 대화 상자가 나타납니다. 추출하려는 zip 파일을 선택하고 열기 버튼을 클릭하세요.

.NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 11

zip 파일에서 데이터 캡처가 완료되어 원하는 폴더에 추출되면 확인 메시지가 표시됩니다.

.NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 12

이제 '추출된 파일' 폴더로 이동하면 선택한 zip에서 추출된 파일을 볼 수 있습니다.

.NET MAUI 데이터 추출 SDK (개발자 튜토리얼): 그림 13

결론

결론적으로, IronZIP을 .NET MAUI와 통합하면 플랫폼 간 응용프로그램에서 아카이브를 생성, 읽기, 추출할 수 있는 강력한 솔루션이 제공됩니다.

제공된 예제는 .NET MAUI 내에서 여러 파일을 선택하고, zip 아카이브를 생성하고, zip 아카이브에서 파일을 추출하는 방법을 설명합니다.

이 기술들의 조합은 다양한 플랫폼에서 아카이브를 관리하고 조작하는 데 있어 개발자에게 원활한 경험을 제공합니다.

더 자세한 정보 및 코드 예제는 이 문서 페이지를 참조하십시오.

IronZIP는 무료 체험판을 제공합니다. 라이브러리는 여기에서 다운로드할 수 있으며 시도해 보십시오.

자주 묻는 질문

.NET MAUI 프로젝트에 ZIP 라이브러리를 통합하려면 어떻게 해야 하나요?

IronZIP 과 같은 ZIP 라이브러리를 .NET MAUI 프로젝트에 통합하려면 Visual Studio에서 새 .NET MAUI 프로젝트를 만들고 NuGet 통해 IronZIP 라이브러리를 설치한 다음 제공된 코드 예제를 사용하여 ZIP 아카이브 기능을 구현하십시오.

.NET MAUI 애플리케이션에서 ZIP 라이브러리를 사용하면 어떤 이점이 있습니까?

.NET MAUI 애플리케이션에서 IronZIP 과 같은 ZIP 라이브러리를 사용하면 효율적인 데이터 압축 및 압축 해제가 가능하고, 다양한 아카이브 형식을 지원하며, 여러 플랫폼 및 .NET 버전과 호환됩니다.

크로스 플랫폼 애플리케이션에 ZIP 라이브러리를 사용할 수 있나요?

네, IronZIP 크로스 플랫폼 애플리케이션에 사용할 수 있습니다. Windows, Linux, Mac, iOS 및 Android에서 C#, F#, VB .NET 애플리케이션을 지원합니다.

.NET MAUI 애플리케이션에서 ZIP 파일을 어떻게 생성하나요?

.NET MAUI 애플리케이션에서 IronZIP 라이브러리를 사용하면 ZIP 파일을 생성할 수 있습니다. 파일 선택을 허용하려면 OnSelectFilesButtonClicked 메서드를 구현하고, IronArchive 클래스의 CreateZip 메서드를 사용하여 파일을 ZIP 아카이브에 추가하세요.

.NET MAUI 프로젝트에서 ZIP 압축 파일에서 파일을 추출하는 방법은 무엇인가요?

.NET MAUI 프로젝트에서 ZIP 압축 파일에서 파일을 추출하려면 IronZIP의 ExtractArchiveToDirectory 메서드를 사용합니다. 먼저 OnSelectFileButtonClicked 메서드를 구현하여 ZIP 파일을 선택한 다음 지정된 디렉터리에 내용을 추출합니다.

IronZIP 어떤 압축 형식을 지원하나요?

IronZIP ZIP, TAR, GZIP, BZIP2를 포함한 다양한 압축 형식을 지원하므로 여러 유형의 압축 파일 아카이브를 처리하는 데 다용도로 사용할 수 있습니다.

IronZIP 다양한 .NET 버전과 호환되나요?

네, IronZIP .NET 7, 6, 5, Core, Standard, Framework 등 다양한 .NET 버전과 호환되므로 여러 .NET 환경에서 작업하는 개발자에게 유연성을 제공합니다.

.NET MAUI 에서 ZIP 라이브러리를 구현하기 위한 필수 조건은 무엇입니까?

.NET MAUI 에서 IronZIP 과 같은 ZIP 라이브러리를 구현하려면 .NET MAUI 워크로드가 설치된 Visual Studio가 있는지, 그리고 NuGet 통해 IronZIP 라이브러리가 프로젝트에 추가되었는지 확인하십시오.

.NET MAUI 애플리케이션에 ZIP 기능을 추가하려면 어떻게 해야 할까요?

IronZIP 통합하여 ZIP 파일 생성 및 압축 해제를 관리함으로써 .NET MAUI 애플리케이션의 기능을 향상시키고, 사용자에게 강력한 데이터 압축 및 압축 해제 기능을 제공하세요.

.NET MAUI 에서 ZIP 라이브러리를 사용하는 방법에 대한 자세한 정보는 어디에서 찾을 수 있나요?

더 자세한 정보와 코드 예제는 IronZIP 문서 페이지를 참조하세요. 해당 페이지에서는 .NET MAUI 프로젝트에서 ZIP 기능을 통합하고 활용하는 방법에 대한 포괄적인 지침을 제공합니다.

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

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

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

Iron Support Team

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