Create a Flat ZIP Archive in C#

Giới thiệu

Quản lý các tệp ZIP có thể là thách thức, đặc biệt là khi chúng chứa các tập tin nested. Hướng dẫn này sẽ hướng dẫn bạn thông qua quá trình của các cấu trúc ZIP bằng cách lấy tất cả các tập tin ZIP nội bộ vào một tập tin bằng cách sử dụng Aspose.ZIP cho .NET.

Tại sao nên tạo ZIP?

Tạo một lưu trữ ZIP phẳng cung cấp một số lợi thế:

  • Hơn giản hóa quản lý tệp ZIP: Giảm sự phức tạp khi xử lý nhiều tệp.
  • Thuyết xuất tất cả các nội dung ZIP có sẵn vào một tập tin: Tăng cường các tập tin để truy cập dễ dàng hơn.
  • Giảm cấu trúc thư mục giảm bớt: Streamline tổ chức các tập tin.

Bảng nội dung

Cài đặt ZIP Archive Processing trong C#

Để xử lý hiệu quả các tập tin ZIP , chúng tôi sẽ sử dụng Aspose.ZIP cho .NET. Thư viện mạnh mẽ này cung cấp:

  • Tự động chiết xuất ZIP và nén lại.
  • Hỗ trợ nhiều định dạng lưu trữ: ZIP, TAR, GZip, và nhiều hơn nữa.
  • Hành động xử lý hiệu quả của các tập tin lớn.

Cài đặt

Bạn có thể dễ dàng cài đặt thư viện thông qua NuGet:

PM> Install-Package Aspose.Zip

Ngoài ra, bạn có thể tải về DLL từ Aspose Downloads Trang.

Bước 2: Tạo một file ZIP phẳng

Hãy xem xét các cấu trúc ZIP sau đây:

parent.zip
 ├ first.txt
 ├ inner.zip
 │ ├ file1.exe
 │ └ data.bin
 └ picture.gif

Sau khi lấp lánh, tất cả nội dung ZIP bên trong sẽ được tập trung vào ZIP mẹ:

flattened.zip
 ├ first.txt
 ├ picture.gif
 ├ file1.exe
 └ data.bin

Code Ví dụ

Dưới đây là cách bạn có thể tự động chiết xuất các tệp ZIP sôi:

// Load the parent ZIP file
using (Archive parentZip = new Archive("parent.zip"))
{
    List<ArchiveEntry> toDelete = new List<ArchiveEntry>();
    List<string> newEntryNames = new List<string>();
    List<MemoryStream> newStreams = new List<MemoryStream>();

    foreach (ArchiveEntry entry in parentZip.Entries)
    {
        if (entry.Name.EndsWith(".zip", StringComparison.OrdinalIgnoreCase))
        {
            toDelete.Add(entry);
            using (MemoryStream zipStream = new MemoryStream())
            {
                entry.Open().CopyTo(zipStream);
                zipStream.Position = 0;
                using (Archive innerZip = new Archive(zipStream))
                {
                    foreach (ArchiveEntry innerEntry in innerZip.Entries)
                    {
                        using (MemoryStream entryStream = new MemoryStream())
                        {
                            innerEntry.Open().CopyTo(entryStream);
                            newEntryNames.Add(innerEntry.Name);
                            newStreams.Add(entryStream);
                        }
                    }
                }
            }
        }
    }

    foreach (var entry in toDelete)
        parentZip.DeleteEntry(entry);

    for (int i = 0; i < newEntryNames.Count; i++)
        parentZip.CreateEntry(newEntryNames[i], newStreams[i]);

    parentZip.Save("flattened.zip");
}

Phương pháp này hiệu quả tự động chiết xuất các tập tin ZIP ướt, đảm bảo một dòng công việc mịn màng với chức năng C# Archive.

3.Save the Flattened ZIP File

Một khi bạn đã rút ra các nội dung ZIP mọc, hãy lưu tệp ZIP mọc bằng cách sử dụng dòng mã sau:

parentZip.Save("flattened.zip");

Điều này đảm bảo rằng bạn có một lưu trữ ZIP duy nhất mà không có thư mục mờ, làm cho việc quản lý tệp dễ dàng hơn nhiều thông qua các kỹ thuật C# Zip Compression.

4.Batch xử lý Multiple ZIP Archives

Nếu bạn cần thiên bản lưu trữ ZIP đa dạng nằm trong một thư mục cụ thể, bạn có thể sử dụng đoạn mã sau đây:

string[] files = Directory.GetFiles("zip_folder", "*.zip");
foreach (string file in files)
{
    using (Archive archive = new Archive(file))
    {
        archive.ExtractToDirectory("output_folder");
    }
}

Phương pháp này cho phép ** tự động quá trình ZIP lớn**, tiết kiệm thời gian và nỗ lực trong khi xử lý hiệu quả C# Zip File.

Nhận giấy phép API miễn phí

Để mở khóa các tính năng đầy đủ của Aspose.ZIP, bạn có thể yêu cầu một giấy phép tạm thời miễn phí (https://purchase.aspose.com/temporary-license).

Để có tài liệu đầy đủ, hãy truy cập Aspose.ZIP Hướng dẫn ** . Nếu bạn có bất kỳ câu hỏi nào, cảm thấy tự do tham gia với cộng đồng trên ** Forum Aspos.

Kết luận và tài nguyên bổ sung

Tổng hợp

Trong hướng dẫn này, chúng tôi bao gồm:

  • Làm thế nào để phác thảo các tệp ZIP trong C#
  • Khóa lưu trữ ZIP
  • Giữ hồ sơ ZIP cuối cùng
  • Thử lý nhiều tệp ZIP cùng một lúc

Với Aspose.ZIP cho .NET, bạn có thể chiết xuất và quản lý một cách hiệu quả các tập tin ZIP trong các ứng dụng của bạn. bắt đầu tối ưu hóa dòng công việc xử lý ZIP của bạn hôm nay!

Tài nguyên bổ sung

Đối với các nhà phát triển muốn nâng cao sự hiểu biết của họ, xem xét các chủ đề này:

  • C# Create Zip Archive: Khám phá các phương pháp khác nhau để tạo tệp ZIP trong ứng dụng C# của bạn.
  • Tạo Tệp ZIP C# .NET Core: Tập trung vào .NET Core, tìm hiểu các thực hành tốt nhất cho việc tạo tệp zip.
  • C# Extract File from ZIP: Hướng dẫn từng bước về việc lấy các tập tin cụ thể từ các tệp Zip.
  • C# Decompress ZIP: Một hướng dẫn chi tiết về việc phá vỡ các tệp Zip bằng cách sử dụng C#.
  • Làm thế nào để Zip File trong .NET với C#: Một bước đi hoàn chỉnh trên các tập tin zipping bằng cách sử dụng .NET và C#.
  • C# ZipArchive Extract to Directory: Tìm hiểu làm thế nào để sử dụng Zibarchive cho việc rút tập tin hiệu quả.
  • C# Zipping File: Khám phá các phương pháp để zipping các tập tin trong C# để cải thiện hiệu suất và tiện nghi.
  • .NET Core Create Zip File: Một cái nhìn chi tiết về việc tạo các tập tin ZIP bằng cách sử dụng .NET core và C#.
  • C# Zip: Tìm hiểu về việc xử lý các tệp ZIP hiệu quả trong C#.
  • C# Zip Example: Đánh giá các ví dụ thực tế của các tập tin zipping trong C# để làm nhanh quá trình phát triển của bạn.
  • .NET Core Zip: Thực hành tốt nhất để làm việc với các tệp ZIP trong các ứng dụng .NET core.
  • C# Open ZIP: Hiểu làm thế nào để mở và đọc các tệp Zip một cách hiệu quả.
  • C# Read File from ZIP: Các kỹ thuật để đọc các tập tin cụ thể được lưu trữ trong các tệp Zip.
  • C# Zip Lists: Tìm hiểu làm thế nào để zip danh sách các tệp một cách không cần thiết trong ứng dụng của bạn.
  • C# Zipping File: Xem kỹ hơn các phương pháp cho các tập tin zipping.
  • .NET Core Zip: Giới thiệu về quản lý tệp ZIP .NET Core.
  • C# Archive: Tìm hiểu cách sử dụng lớp Archive cho việc xử lý ZIP toàn diện.

More in this category