Tôi đang cố gắng giải nén theo chương trình một tệp nén.
Tôi đã thử sử dụng System.IO.Compression.GZipStream
lớp trong .NET, nhưng khi ứng dụng của tôi chạy (thực sự là một bài kiểm tra đơn vị) tôi nhận được ngoại lệ này:
System.IO.InvalidDataException: Số ma thuật trong tiêu đề GZip là không chính xác. Hãy chắc chắn rằng bạn đang truyền trong luồng GZip ..
Bây giờ tôi nhận ra rằng một .zip
tệp không giống như một .gz
tệp và nó GZip
không giống với Zip
.
Tuy nhiên, vì tôi có thể trích xuất tệp bằng cách nhấp đúp vào tệp được nén bằng tay và sau đó nhấp vào nút "Trích xuất tất cả tệp", tôi nghĩ rằng cũng nên có cách thực hiện mã đó.
Do đó, tôi đã cố gắng sử dụng Process.Start()
với đường dẫn đến tệp nén là đầu vào. Điều này khiến ứng dụng của tôi mở Cửa sổ hiển thị nội dung trong tệp được nén. Điều đó không sao, nhưng ứng dụng sẽ được cài đặt trên một máy chủ không có ai xung quanh để nhấp vào nút "Trích xuất tất cả các tệp".
Vì vậy, làm cách nào để ứng dụng của tôi giải nén các tệp trong các tệp nén?
Hoặc có một cách khác để làm điều đó? Tôi thích làm điều đó bằng mã, mà không cần tải xuống bất kỳ thư viện hoặc ứng dụng của bên thứ ba nào; bộ phận an ninh không quá thích điều đó ...