Cách tạo tệp ZIP chứa tệp CSV trong .NET

Aspose.ZIP for .NET cho phép ứng dụng C# tạo tệp ZIP từ tệp CSV mà không cần chạy 7-Zip, WinRAR hoặc phần mềm nén trên máy tính. Tạo một đối tượng Archive, thêm từng tệp dưới dạng mục lưu trữ, đưa vào các tài nguyên cần thiết rồi gọi Save để ghi tệp ZIP hoàn chỉnh.

API chỉ đóng gói những tệp mà ứng dụng chỉ định và không thay đổi ô, công thức, định dạng, macro hoặc dữ liệu bên trong sổ làm việc. Vì vậy, dữ liệu nguồn và nội dung bổ sung có thể được gửi trong một gói di động mà vẫn giữ nguyên nội dung bên trong từng tệp.

Ví dụ C#: thêm tệp CSV vào ZIP

Ví dụ ngắn này thêm một tệp CSV vào tệp ZIP mới và lưu kết quả thành archived_result.zip. Hãy đặt dir thành thư mục chứa tệp nguồn.

Thêm tệp CSV vào ZIP – C#

var dir = "full directory path";
using (var arch = new Archive())
{
   arch.CreateEntry("filename.csv", dir+"file.csv");
   arch.Save(dir+"archived_result.zip");
}

Cài đặt Aspose.ZIP for .NET

Cài đặt gói Aspose.ZIP từ NuGet và thêm tham chiếu vào dự án .NET. ZIP được tạo ngay trong tiến trình ứng dụng nên không cần cài riêng phần mềm nén tệp.

Bảng điều khiển Trình quản lý Gói

PM> Install-Package Aspose.Zip

Lưu một tệp CSV trong ZIP

Thêm một tệp nguồn CSV vào đối tượng Archive mới rồi lưu kết quả. Chọn tên mục rõ ràng nếu muốn tệp trong ZIP hoàn chỉnh có tên đơn giản hoặc thống nhất hơn.

Đóng gói nhiều tệp CSV

Gọi CreateEntry cho từng tệp CSV trước khi lưu. Có thể sắp xếp tệp từ nhiều thư mục nguồn vào cùng thư mục spreadsheets/ bên trong ZIP.

Đóng gói tệp CSV cùng tài nguyên liên quan

Thêm các tệp CSV cùng nội dung bổ sung như nguồn dữ liệu ngoài, tài liệu, dữ liệu xuất và báo cáo kiểm tra. Giữ nguyên đường dẫn tương đối mà hệ thống nhận dữ liệu mong đợi để gói có thể dùng ngay sau khi giải nén.

Lưu hoặc truyền gói CSV

Lưu ZIP vào tệp cục bộ, ghi vào phản hồi ASP.NET hoặc gửi thẳng tới bộ nhớ đám mây qua luồng có thể ghi. Cấu trúc và tên mục trong tệp ZIP không đổi khi đích lưu trữ thay đổi.

Các bước tạo ZIP từ tệp CSV bằng C#

  1. Cài đặt Aspose.ZIP for .NET và thêm tham chiếu gói.
  2. Xác định các tệp CSV và mọi tài nguyên liên quan cần đưa vào gói.
  3. Tạo một đối tượng Archive cho tệp ZIP mới.
  4. Gọi CreateEntry cho từng tệp nguồn và đặt đường dẫn mong muốn bên trong ZIP.
  5. Cấu hình phương thức nén hoặc mã hóa nếu quy trình chuyển giao yêu cầu.
  6. Gọi Save với đường dẫn đầu ra hoặc luồng có thể ghi, sau đó giải phóng đối tượng và luồng.

Thêm tất cả mục dự kiến trước khi lưu. CreateEntries có thể thêm đệ quy toàn bộ cây thư mục đã chuẩn bị; các lệnh gọi CreateEntry riêng lẻ cho phép kiểm soát chặt hơn tên và những tệp được đưa vào.

Tạo ZIP không chuyển đổi định dạng CSV

Tạo ZIP từ tệp CSV là thao tác lưu trữ, không phải chuyển đổi tệp. Tệp vẫn không thay đổi trong vùng chứa ZIP và chuỗi byte ban đầu được khôi phục khi giải nén. Aspose.ZIP không diễn giải hoặc ghi lại ô, công thức, định dạng, macro hoặc dữ liệu bên trong sổ làm việc.

Nếu cần chuyển CSV sang XLSX hoặc ODS, hãy dùng thư viện chuyển đổi chuyên dụng. ZIP phù hợp khi cần gom, truyền, lưu hoặc bảo vệ các tệp hiện có.

Thêm đầy đủ tệp liên quan đến CSV

Một gói CSV hoàn chỉnh có thể gồm tệp chính cùng nguồn dữ liệu ngoài, tài liệu, dữ liệu xuất và báo cáo kiểm tra. Aspose.ZIP đặt mỗi thành phần vào một mục riêng và không tự phân tích tệp CSV để tìm các tệp phụ thuộc. Ứng dụng phải tự xác định nội dung gói và thêm rõ ràng mọi tài nguyên cần thiết.

Chỉ thêm nguồn dữ liệu ngoài và tài liệu khi người nhận cần chúng để sử dụng gói. Trước khi tạo ZIP, hãy kiểm tra đủ tệp cần thiết và giữ nguyên cấu trúc thư mục tương đối mà phần mềm của người nhận mong đợi.

Quản lý đường dẫn và tên trong ZIP chứa tệp CSV

Đường dẫn nguồn cho .NET biết nơi đọc tệp; tên mục quyết định vị trí tệp xuất hiện trong ZIP. Chẳng hạn, một tệp trong thư mục làm việc cục bộ có thể được lưu thành `spreadsheets/file.csv` mà không làm lộ đường dẫn thật trên máy.

Dùng dấu gạch chéo cho đường dẫn ZIP có thể sử dụng trên nhiều nền tảng, giữ nhất quán chữ hoa chữ thường và từ chối đường dẫn tuyệt đối hoặc đoạn đi lên thư mục cha như ../. Đồng thời kiểm tra tên mục trùng khi lấy tệp từ nhiều thư mục.

Mức nén có thể đạt được với tệp CSV

Sổ làm việc dựa trên XML thường đã được nén, trong khi dữ liệu bảng dạng văn bản có thể giảm đáng kể. Ngay cả khi kích thước giảm không nhiều, ZIP vẫn cung cấp một tệp duy nhất để truyền, cấu trúc thư mục xác định, thông tin toàn vẹn và tùy chọn bảo vệ bằng mật khẩu.

Deflate là lựa chọn mặc định thực tế với khả năng tương thích rộng. Chế độ lưu không nén phù hợp khi tốc độ đóng gói quan trọng hơn kích thước và hầu hết mục đã được nén. Hãy đo trên các gói đại diện thay vì giả định một tỷ lệ nén cho mọi tệp CSV.

Bảo vệ ZIP chứa tệp CSV bằng mật khẩu

Các mục bí mật có thể được bảo vệ bằng ZipCrypto truyền thống hoặc mã hóa AES. Dùng AES khi phần mềm giải nén của người nhận hỗ trợ; chỉ chọn ZipCrypto khi khả năng tương thích với công cụ cũ là yêu cầu quan trọng nhất.

Đọc mật khẩu từ cấu hình ứng dụng an toàn, không ghi vào mã nguồn hoặc nhật ký. Gửi mật khẩu qua kênh khác với tệp ZIP và xác nhận người nhận có thể mở phương thức mã hóa đã chọn trước khi phân phối.

Khuyến nghị khi dùng ZIP với tệp CSV trong hệ thống thực tế

- Xác minh mọi tệp nguồn và tài nguyên cần thiết tồn tại trước khi ghi ZIP. - Đặt giới hạn về số tệp, kích thước từng tệp, tổng dữ liệu đầu vào và vị trí nguồn được phép đối với yêu cầu không đáng tin cậy. - Chuẩn hóa và xác thực tên mục để ngăn đường dẫn giải nén không an toàn. - Ghi vào vị trí tạm trước và chỉ chuyển ZIP hoàn chỉnh tới đích sau khi `Save` thành công. - Dùng luồng có thể ghi khi trả ZIP từ ASP.NET hoặc gửi thẳng tới kho lưu trữ đối tượng. - Luôn giải phóng `Archive` và luồng đúng thời điểm; báo cáo tệp phụ thuộc bị thiếu mà không để lộ bí mật hoặc đường dẫn cục bộ. - Dùng thứ tự mục và dấu thời gian ổn định khi quy trình yêu cầu tạo ZIP có thể tái lập.

Tạo ZIP trực tuyến từ tệp CSV

Cần đóng gói tệp mà không viết mã? Hãy dùng miễn phí công cụ tạo ZIP trực tuyến ngay trong trình duyệt.

  Không cần cài phần mềm nén trên máy.
  Không cần cấu hình API hoặc viết mã C#.
  Tải lên tệp CSV và các tài nguyên liên quan.
  Tải xuống tệp ZIP đã tạo.

Tài nguyên Aspose.ZIP for .NET

Câu hỏi thường gặp

1. Làm cách nào để tạo ZIP từ tệp CSV bằng C#?

Tạo một đối tượng Archive, gọi CreateEntry với tên mục và đường dẫn tệp nguồn CSV, sau đó gọi Save với đường dẫn ZIP đích hoặc luồng.

2. Có thể thêm nhiều tệp CSV vào cùng một ZIP không?

Có. Gọi CreateEntry cho từng tệp trước khi lưu và đặt tên duy nhất cho mỗi mục bên trong ZIP.

3. Các tệp liên quan có được thêm tự động không?

Không. Aspose.ZIP chỉ đóng gói những tệp ứng dụng cung cấp và không phân tích CSV để tìm tệp phụ thuộc. Hãy thêm rõ ràng từng tài nguyên cần thiết.

4. Việc tạo ZIP có chuyển CSV sang định dạng khác không?

Không. Tệp CSV vẫn giữ nguyên trong ZIP. Chuyển đổi sang XLSX hoặc ODS là một thao tác riêng.

5. Có thể mã hóa ZIP chứa tệp CSV không?

Có. Aspose.ZIP hỗ trợ bảo vệ bằng mật khẩu với ZipCrypto và AES. Hãy chọn phương thức mà phần mềm giải nén của người nhận hỗ trợ.