GZipStream工作,但扩展丢失
本文关键字:扩展 工作 GZipStream | 更新日期: 2023-09-27 18:11:19
我使用以下代码来压缩文件,它工作得很好,但当我用WinRar解压缩时,我得到原始文件名而没有扩展名,任何线索为什么文件名是myReport.xls
当我解压缩时,我只得到myReport
?
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();
}
}
GZip只压缩一个文件-不知道文件名。因此,如果压缩文件myReport.xls
,您应该将其命名为myReport.xls.gz
。在解压缩时,最后一个文件扩展名将被删除,因此您最终将获得原始文件名。
它在Unix/Linux中使用了很长时间
确实很奇怪。一个简短的搜索出现了以下内容:
http://dotnetzip.codeplex.com/discussions/268293表示GZipStream无法知道正在写入的流的名称,并建议您直接设置FileName
属性。
希望对你有帮助。