
Giới thiệu về Tệp ZIP
Tệp ZIP là cần thiết để nén và hợp nhất một hoặc nhiều tệp hoặc thư mục thành một container duy nhất. Định dạng này không chỉ giảm kích thước tệp để lưu trữ và truyền tải mà còn giữ lại thông tin siêu dữ liệu, giúp dễ dàng quản lý tệp. Tệp ZIP được sử dụng rộng rãi trong cả ứng dụng máy tính để bàn và web cho các tác vụ như tải lên, tải xuống, chia sẻ và bảo mật tệp thông qua mã hóa.
Trong bài viết này, chúng ta sẽ khám phá nhiều phương pháp để tạo tệp ZIP bằng lập trình trong C#. Bạn sẽ học cách:
- Tạo tệp ZIP bằng C#
- Thêm nhiều tệp vào tệp ZIP
- Thêm thư mục vào tệp ZIP
- Tạo tệp ZIP bảo vệ bằng mật khẩu sử dụng ZipCrypto
- Mã hóa tệp ZIP bằng mã hóa AES
- Đặt chế độ nén song song
Thư viện ZIP C#
Aspose.ZIP cho .NET là một API mạnh mẽ được thiết kế để nén và giải nén tệp và thư mục trong các ứng dụng .NET. Nó cung cấp các tính năng như mã hóa AES để bảo mật tệp của bạn trong các tệp ZIP. Bạn có thể dễ dàng cài đặt API từ NuGet hoặc tải xuống các tệp nhị phân từ phần Tải xuống.
Tạo tệp ZIP trong C#
Để nén một tệp vào tệp ZIP, hãy làm theo các bước sau:
- Tạo một đối tượng FileStream cho tệp ZIP đầu ra.
- Mở tệp nguồn bằng một đối tượng FileStream.
- Khởi tạo lớp Archive.
- Thêm tệp vào tệp lưu trữ bằng phương thức Archive.CreateEntry(string, FileStream).
- Lưu tệp ZIP bằng phương thức Archive.Save(FileStream).
Dưới đây là một mẫu mã minh họa cách thêm một tệp vào tệp ZIP bằng C#:
Thêm nhiều tệp vào tệp ZIP trong C#
Để thêm nhiều tệp vào tệp ZIP, bạn có thể chọn một trong các phương pháp sau:
Sử dụng FileStream
Sử dụng lớp FileStream để thêm nhiều tệp vào tệp ZIP với phương thức Archive.CreateEntry(String, FileStream). Dưới đây là cách thực hiện:
Sử dụng FileInfo
Ngoài ra, bạn có thể sử dụng lớp FileInfo để thêm các tệp. Phương pháp này tải các tệp bằng lớp FileInfo và thêm chúng vào tệp ZIP bằng phương thức Archive.CreateEntry(String, FileInfo). Xem ví dụ dưới đây:
Sử dụng Đường dẫn Tệp
Bạn cũng có thể thêm các tệp trực tiếp bằng cách cung cấp đường dẫn của chúng cho phương thức Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings). Dưới đây là cách thực hiện:
Thêm thư mục vào tệp ZIP trong C#
Thêm một thư mục vào tệp ZIP có thể là một cách thuận tiện để bao gồm nhiều tệp. Để nén một thư mục trong C#, hãy làm theo các bước sau:
- Tạo một đối tượng FileStream cho tệp ZIP đầu ra.
- Khởi tạo lớp Archive.
- Sử dụng lớp DirectoryInfo để chỉ định thư mục sẽ được nén.
- Thêm thư mục vào tệp ZIP bằng phương thức Archive.CreateEntries(DirectoryInfo).
- Lưu tệp ZIP bằng phương thức Archive.Save(FileStream).
Dưới đây là một mẫu mã minh họa cách thêm một thư mục vào tệp ZIP trong C#:
Tạo tệp ZIP bảo vệ bằng mật khẩu sử dụng ZipCrypto trong C#
Để tăng cường bảo mật, bạn có thể tạo các tệp ZIP bảo vệ bằng mật khẩu sử dụng mã hóa ZipCrypto. Điều này được thực hiện bằng cách sử dụng lớp ArchiveEntrySettings trong hàm khởi tạo của Archive, cho phép bạn chỉ định loại mã hóa.
Dưới đây là một ví dụ về cách tạo một tệp ZIP bảo vệ bằng mật khẩu sử dụng ZipCrypto trong C#:
Tạo tệp ZIP bảo vệ bằng mật khẩu với mã hóa AES
Thư viện Aspose.ZIP cho .NET cũng hỗ trợ mã hóa AES để bảo vệ các tệp ZIP. Bạn có thể chọn từ các phương pháp mã hóa AES sau:
- AES128
- AES192
- AES256
Để áp dụng mã hóa AES, hãy sử dụng lớp AesEcryptionSettings. Dưới đây là cách tạo một tệp ZIP bảo vệ bằng mật khẩu với mã hóa AES trong C#:
Đặt chế độ nén song song
Đối với các trường hợp liên quan đến nhiều mục, bạn có thể cấu hình API cho chế độ nén song song bằng cách sử dụng lớp ParallelOptions. Aspose.ZIP cho .NET cung cấp một số chế độ nén song song:
- Không bao giờ - Không nén song song.
- Luôn luôn - Luôn nén song song (cẩn thận với các vấn đề hết bộ nhớ).
- Tự động - Tự động quyết định có sử dụng nén song song dựa trên các mục.
Dưới đây là một ví dụ minh họa cách đặt chế độ nén song song khi nén nhiều tệp:
Tìm hiểu thêm về Thư viện ZIP C# .NET
Khám phá sâu hơn về API ZIP C# của chúng tôi với các tài nguyên sau:
Thử nghiệm Tệp ZIP trực tuyến
Khám phá ứng dụng trực tuyến miễn phí của chúng tôi, dựa trên Aspose.ZIP cho .NET, để nén các tệp vào tệp ZIP một cách dễ dàng.
Kết luận
Trong bài viết này, bạn đã học cách tạo tệp ZIP bằng lập trình trong C#. Các mẫu mã được cung cấp minh họa cách thêm tệp và thư mục vào tệp ZIP. Ngoài ra, chúng tôi đã đề cập đến cách tạo các tệp ZIP bảo vệ bằng mật khẩu sử dụng cả phương pháp ZipCrypto và AES. Chúng tôi cũng đã thảo luận về nén song song để xử lý các tệp lớn một cách hiệu quả. Nếu bạn có bất kỳ câu hỏi nào hoặc cần thêm hỗ trợ, hãy thoải mái liên hệ với chúng tôi qua diễn đàn.