Tôi đang sử dụng mã sau để nén tệp và nó hoạt động tốt nhưng khi tôi giải nén với WinRar tôi nhận được tên tệp gốc mà không có phần mở rộng, bất kỳ đầu mối nào nếu tên tệp là myReport.xls
khi tôi giải nén chỉ myReport
?GZipStream hoạt động nhưng phần mở rộng bị mất
using (var fs = new FileStream(fileName, FileMode.Open))
{
byte[] input = new byte[fs.Length];
fs.Read(input, 0, input.Length);
fs.Close();
using (var fsOutput = new FileStream(zipName, FileMode.Create, FileAccess.Write))
using(var zip = new GZipStream(fsOutput, CompressionMode.Compress))
{
zip.Write(input, 0, input.Length);
zip.Close();
fsOutput.Close();
}
}
AFAIK GZip không có ý tưởng về các tập tin hoặc thư mục ... OTOH bưu điện là rất khác so với vì nó có tất cả bao gồm tập tin này thuộc tính, vv được xây dựng trong ... có lẽ bạn muốn sử dụng một thư viện Zip? – Yahia
IOW, GZip là định dạng nén, trong khi ZIP là định dạng nén được nén. (TAR sẽ là một ví dụ về định dạng lưu trữ.) –